2011-12-24 42 views
0

我有一个产品在其分发版中包含Jar文件,并且我创建了一个使用install-file mojo将jar安装到本地存储库。所以用户解压我的zip文件并输入“mvn install”,一切正常。在Maven中安装必需的Jar文件和可选的第二个jar文件到本地存储库

我的问题是我有第二个Jar文件,我也想使用相同的pom.xml进行安装,但是这个Jar文件是可选的,可能存在也可能不存在(Jar文件是由用户单独下载的并放置在同一个目录中)。我已经尝试安装文件,也build-helper:attach-artifact,并不知道如何在一个单一的POM内做到这一点。我很高兴让用户输入一些不同的命令来安装这个Jar文件,或者让它使用“mvn install”。

+0

如何检查此可选jar的存在,然后调用'mvn install'的shell脚本/批处理文件? – Raghuram

+0

嗯,我想这将工作,如果我做了一个替代pom.xml文件,但我正在尝试做一些很好,干净和像maven一样。 –

回答

1

一种可能性是使用profile,它基于第二个罐子的存在而被激活。此配置文件可用于使用上面提到的build helper maven plugin目标附加其他工件。这样的事情...

<project> 
    ... 
    <profiles> 
     <profile> 
      <id>second-jar</id> 
      <activation> 
      <file> 
       <exists>${basedir}/location/of/second.jar</exists>   
      </file> 
      </activation> 
      <build> 
      <plugins> 
       ... 
       <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>build-helper-maven-plugin</artifactId> 
       <version>1.7</version> 
       <executions> 
        <execution> 
        <id>attach-artifacts</id> 
        <phase>package</phase> 
        <goals> 
         <goal>attach-artifact</goal> 
        </goals> 
        <configuration> 
         <artifacts> 
         <artifact> 
          <file>second</file> 
          <type>jar</type> 
         </artifact> 
         </artifacts> 
        </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      </plugins> 
     </build> 
    </profile> 
    </profiles> 
</project> 
+0

完美无缺,正是我一直在寻找的。谢谢! –

相关问题