乐趣区

java和groovy混编的Maven项目如何用intellij打包执行jar包

由于自己之前使用的是 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 包路径配置的地方报红,检查没问题的话可以不管,不影响打包编译。

欢迎有兴趣的童鞋一起交流

退出移动版