在Maven中使用WAR作为依赖项

时间:2016-12-11 16:51:10

标签: maven war

我得到了一个客户端的项目,该客户端有一堆依赖项,这些依赖项位于他们提供的WAR文件中。我已将依赖项添加到pom.xml:

<dependency>
        <groupId>com.oragle.oipa</groupId>
        <artifactId>PASJava</artifactId>
        <version>10.2.0.25</version>
        <type>war</type>
</dependency>

但显然,由于我实际拥有这些文件,因此Maven无法自动安装它们。我可以做些什么来让Maven识别他们的位置并为我设置它们?

1 个答案:

答案 0 :(得分:0)

如果战争没有与pom.xml相关联,你应该“mavenize”它以便能够在另一个Maven项目中使用它作为Maven依赖。

1)您可以查看Maven安装插件的install-file目标 它允许在本地存储库中生成和部署pom。

https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

通过您的示例,您可以通过以下方式生成并安装war工件:

mvn install:install-file -Dfile=locationOfYourWarFile -DgroupId=com.oragle.oipa
    -DartifactId=PASJava -Dversion=10.2.0.25 -Dpackaging=war

2)您还可以查看Maven部署插件的deploy-file目标 它允许在远程存储库中生成和部署pom。如果其他用户需要将战争视为Maven依赖,这可能会很有用 http://maven.apache.org/plugins/maven-deploy-plugin/usage.html

以下是文档中的示例:

mvn deploy:deploy-file -Durl=file://C:\m2-repo \
                       -DrepositoryId=some.id \
                       -Dfile=your-artifact-1.0.jar \
                       [-DpomFile=your-pom.xml] \
                       [-DgroupId=org.some.group] \
                       [-DartifactId=your-artifact] \
                       [-Dversion=1.0] \
                       [-Dpackaging=jar] \
                       [-Dclassifier=test] \
                       [-DgeneratePom=true] \
                       [-DgeneratePom.description="My Project Description"] \
                       [-DrepositoryLayout=legacy] \
                       [-DuniqueVersion=false]