使用jfinal-undertow部署项目出现:找不到或无法加载主类2


pom.xml 如下:只是对其中一些依赖进行新增和修改,然后window下部署一直起不来,主jar包也没有生成,那位大佬知道是怎么一回事吗?


 <dependencies>

    <!-- jfinal -->

<dependency>

<groupId>com.jfinal</groupId>

<artifactId>jfinal</artifactId>

<version>4.8</version>

</dependency>


<!-- jfinal-undertow 开发、部署一体化 web 服务器 -->

<dependency>

<groupId>com.jfinal</groupId>

<artifactId>jfinal-undertow</artifactId>

<version>2.0</version>

</dependency>


<!-- junit 单元测试  -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

</dependency>

<!-- 避免控制台输出如下提示信息:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

项目中实际上用不到这个 jar 包,本 jfinal demo 用不上这个依赖,在此仅为大家

在未来基于 jfinal demo 为模板做开发时做准备工作

注意:eclipse 下可以将 scope 设置为 provided

-->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-nop</artifactId>

<version>1.7.29</version>

<!-- 打包前改成 provided,此处使用 compile 仅为支持 IDEA -->

<scope>compile</scope>

</dependency>

<!-- log4j 日志 -->

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.17</version>

</dependency>

<!-- mysql 驱动 -->

<dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

        <version>8.0.17</version>

    </dependency>

<!-- druid 数据源连接池 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.0.29</version>

</dependency>

<!-- cos 文件上传 -->

<dependency>

<groupId>com.jfinal</groupId>

<artifactId>cos</artifactId>

<version>2019.8</version>

</dependency>

<dependency>

<groupId>commons-lang</groupId>

<artifactId>commons-lang</artifactId>

<version>2.5</version>

</dependency>

<!-- 引入事务注解所需 -->

<dependency>

   <groupId>cglib</groupId>

   <artifactId>cglib-nodep</artifactId>

   <version>3.2.5</version>

</dependency>

<!-- 引入redis所需 -->

<dependency>

   <groupId>org.apache.commons</groupId>

   <artifactId>commons-pool2</artifactId>

   <version>2.0</version>

</dependency>

<dependency>

   <groupId>redis.clients</groupId>

   <artifactId>jedis</artifactId>

   <version>2.9.0</version>

</dependency>

<dependency>

   <groupId>de.ruedigermoeller</groupId>

   <artifactId>fst</artifactId>

   <version>2.50</version>

</dependency>

    

    <!--引入定时任务task插件需要的依赖  -->

    <dependency>

   <groupId>it.sauronsoftware.cron4j</groupId>

   <artifactId>cron4j</artifactId>

   <version>2.2.5</version>

</dependency>

    <!--引入二维码需要的依赖  -->

        <dependency>

    <groupId>com.google.zxing</groupId>

    <artifactId>javase</artifactId>

    <version>3.2.1</version>

</dependency>

    

     <!--引入ehcache缓存需要的依赖  -->

    <dependency>

<groupId>net.sf.ehcache</groupId>

<artifactId>ehcache</artifactId>

<version>2.10.3</version>

</dependency>

    

  </dependencies>

  <build>

  

  <plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.6.1</version>

<configuration>

<source>1.8</source>

<target>1.8</target>

<encoding>UTF-8</encoding>

<!-- java8 保留参数名编译参数 -->

<compilerArgument>-parameters</compilerArgument>

<compilerArguments><verbose /></compilerArguments>

</configuration>

</plugin>

<!--

jar 包中的配置文件优先级高于 config 目录下的 "同名文件"

因此,打包时需要排除掉 jar 包中来自 src/main/resources 目录的

配置文件,否则部署时 config 目录中的同名配置文件不会生效

-->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jar-plugin</artifactId>

<version>2.6</version>

<configuration>

<excludes>

<!-- **/* 前缀用法,可以匹配所有路径,例如:**/*.txt -->

<exclude>*.txt</exclude>

<exclude>*.xml</exclude>

<exclude>*.properties</exclude>

</excludes>

</configuration>

</plugin>

<!-- 

使用 mvn clean package 打包 

更多配置可参考官司方文档:http://maven.apache.org/plugins/maven-assembly-plugin/single-mojo.html

-->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-assembly-plugin</artifactId>

<version>3.1.0</version>

<executions>

<execution>

<id>make-assembly</id>

<phase>package</phase>

<goals>

<goal>single</goal>

</goals>

<configuration>

<!-- 打包生成的文件名 -->

<finalName>${project.artifactId}</finalName>

<!-- jar 等压缩文件在被打包进入 zip、tar.gz 时是否压缩,设置为 false 可加快打包速度 -->

<recompressZippedFiles>false</recompressZippedFiles>

<!-- 打包生成的文件是否要追加 package.xml 中定义的 id 值 -->

<appendAssemblyId>true</appendAssemblyId>

<!-- 指向打包描述文件 package.xml -->

<descriptors>

<descriptor>package.xml</descriptor>

</descriptors>

<!-- 打包结果输出的基础目录 -->

<outputDirectory>${project.build.directory}/</outputDirectory>

</configuration>

</execution>

</executions>

</plugin>

<!--使单元测试不影响项目的编译-->

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-surefire-plugin</artifactId>

                <configuration>

                    <skip>true</skip><!--跳过单元测试-->

                    <!--<testFailureIgnore>true</testFailureIgnore>--><!--这个网上很多的解决方式是这个,其实这个,其实这个配置后打包还是会编译单元测试类的,只是忽略编译单元测试类的错误.-->

                </configuration>

            </plugin>



</plugins>

    <finalName>jfinal01</finalName>

  </build>

</project>


评论区

JFinal

2020-02-29 17:39

为啥没有 groupId、artifactId、version、packaging 这些配置?

山东小木

2020-03-01 00:10

Eclipse下建议安装JFinal极速开发插件 搞定一切环境和打包部署问题 点击了解JFInal极速开发插件

yuwen01

2020-03-01 09:20

@JFinal @山东小木 感谢大佬们,问题已经找到,是自己创建的maven项目默认war,导致没有生成jar包,所以项目一直启动不了,该了一下就OK了,波总可以在文档问题中提示一下吗?

JFinal

2020-03-01 11:31

@yuwen01 文档在极其明显的位置就说明了要改为 jar:
https://jfinal.com/doc/1-3

此外,我上一条回复中已经问过你为啥不配置 packaging?

yuwen01

2020-03-01 17:06

@JFinal 不好意思波总,已改正,谢谢!

热门反馈

扫码入社