java - 如果包类型是 POM,则创建 JAR 文件

标签 java spring-boot maven-2 maven-plugin maven-shade-plugin

如果项目打包类型为“POM”,如何制作 JAR 文件。原因是我在这个项目中添加了几个子模块。我正在使用着色插件来制作 JAR 文件,但看起来它没有在 .m2 目录中创建,但它在没有任何类、资源等的目标文件夹中创建

Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>HealthProject</groupId>
  <artifactId>HealthProject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
    <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.4.3</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <artifactSet>
                <excludes>
                  <exclude>classworlds:classworlds</exclude>
                  <exclude>junit:junit</exclude>
                  <exclude>jmock:*</exclude>
                  <exclude>*:xml-apis</exclude>
                  <exclude>org.apache.maven:lib:tests</exclude>
                  <exclude>log4j:log4j:jar:</exclude>
                </excludes>
              </artifactSet>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>
    <modules>
        <module>database</module>
         <module>services</module>
    </modules>
</project> 

最佳答案

我会看到以下解决方案。

要么将其依赖的模块添加到其他项目中。

<dependency>
    <groupId>HealthProject</groupId>
    <artifactId>database</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>HealthProject</groupId>
    <artifactId>services</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

或者您在HealthProject中创建一个新模块,该模块将创建一个HealthProject Jar。

<parent>
    <groupId>HealthProject</groupId>
    <artifactId>HealthProject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>healthproject-all</artifactId>
<packaging>jar</packaging>

<dependencies>
    <dependency>
        <groupId>HealthProject</groupId>
        <artifactId>database</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>HealthProject</groupId>
        <artifactId>services</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>

然后在其他项目中将其添加为依赖项。

<dependencies>
    <dependency>
        <groupId>HealthProject</groupId>
        <artifactId>healthproject-all</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>pom</type>
    </dependency>
</dependencies>

关于java - 如果包类型是 POM,则创建 JAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37019939/

相关文章:

java - 使用 Maven 进行 Selenium RC 测试

提供 Spring MVC 时出现 HTML 错误,但静态查看页面时不会出现 HTML 错误

spring - 在 Spring-Boot 项目中使用 JavaMelody 监控 spring bean

java - 将gradle项目导入另一个插件时出错

SVN 作为 Maven 仓库

maven-2 - 发布管理 - Maven、Bamboo 和 JIRA

java - 我可以将不同 jar 版本的 wars 部署到 Jetty 吗?

java - 为什么当我加载大约 11k 个大小约为 40mb 的图像时会出现 java 堆空间异常

java - 使用 java 将 xml 节点从另一个 xml 文件附加到现有 xml 文件

Java - 小时数四舍五入到 1