由于自己之前使用的是 Gradle 构建工具,最近切到 Maven 有些不太适应,特别是在 java 和 groovy 混编时,在打包 jar 包的过程中出现问题,困扰了很久,在网上查了一些资料,都是引入 build 插件即可,但是插件有的是 eclipse 的插件,进过分析和摸索终于得到了一个再 intellij 使用 Maven 打包混编项目的 jar 包的方法。
首先把项目的 java 文件夹改成 groovy,如图:
然后就是配置 pom 文件,分依赖和 build 两部分:
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.8</version>
</dependency>
<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>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.okayqa.studentapd.T2</mainClass> <!-- 运行 jar 的 main class -->
</manifest>
<!-- 添加本地的 jar -->
<manifestEntries>
<!-- 这个 >lib/class-util-1.0.jar 路径是已经被打包到 target/lib 里的, 多个包用空格隔开就可以了 -->
<Class-Path>/Users/fv/Documents/workspace/fun/build/libs/fun-1.0.jar</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.2</version>
<configuration>
<providerSelection>1.7</providerSelection>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.gmaven.runtime</groupId>
<artifactId>gmaven-runtime-1.7</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.7.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 中间有一个打包本机 jar 的设置没删除,如果本地 jar 包路径配置的地方报红,检查没问题的话可以不管,不影响打包编译。
欢迎有兴趣的童鞋一起交流