2016-12-11 20 views
1

我的客户端提供了一个项目,它有一堆依赖项,这些依赖项都位于他们提供的WAR文件中。我加入的依赖到pom.xml中:在Maven中使用WAR作为依赖关系

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

但显然,因为我身体有文件,它们不能被Maven的自动安装。我能做些什么来让Maven识别他们的位置并为我设置它们?

+0

两个upvotes在一小时的周末?这不是java-se或jsf相关的! – Kukeltje

回答

0

如果战争没有关联到一个pom.xml,你应该“mavenize”它能够用作另一个Maven项目中的Maven依赖项。

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

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

你的榜样,您可以生成并以这种方式安装战争神器:

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]