有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用从完整Maven项目生成的JAR安装一个模块

我有一个Maven项目,包含多个子模块,组织如下:

project-all/
  pom.xml
project-model/
  pom.xml
...

其中project-all/pom.xml基本上是:

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <groupId>com.my.company.myprojectgroupId>
    <artifactId>pom-parent</artifactId>
    <version>2.0.1</version>
    <packaging>pom</packaging>

    <modules>
        <module>../project-model</module>
        <!-- And so on... -->
    </modules>

</project>

而{}是:

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <parent>
        <groupId>com.my.company.myproject</groupId>
        <artifactId>pom-parent</artifactId>
        <version>2.0.1</version>
        <relativePath>../project-all/pom.xml</relativePath>
    </parent>

    <artifactId>project-model</artifactId>
    <packaging>jar</packaging>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <!-- A bunch of dependencies... -->
    </dependencies>
</project>

我可以使用来自project-all目录的mvn packageproject-model/target目录中生成project-model-2.0.1.jar

然后,我需要将它们安装到本地存储库中,但如果我这样做:

mvn install:install-file -Dfile=project-model-2.0.1.jar -DlocalRepositoryPath=.

。。。它失败是因为project-model-2.0.1.jar中的pom.xml文件依赖于父project-all

我可以通过在命令行中指定工件细节来安装它,但是我不能指定,例如依赖项

有没有办法:

  • 按照现在生成的方式安装文件,而不必安装所有子模块
  • 生成一个包含有效的pom.xml.jar,我可以使用mvn install:install-file安装它吗

共 (0) 个答案