2012-09-19 34 views
2

我创建了一个Maven项目,其中有一些依赖于库(.jar文件)的Maven项目,它们不在Maven中心。我们拥有的内部存储库正在脱机,并且我们还没有被授权创建新的存储库,所以我修改了POM,以便在激活某个配置文件时在每个文件上使用install:install-file。它似乎在我的机器上工作,但它可能无法工作,因为.jars已经在我的存储库中。Maven安装:安装文件似乎不起作用

本周我们有一名新员工开始工作,我试图通过触发配置文件来帮助他安装依赖关系,虽然调试跟踪将这些目标列为计划(并且mvn help:active-profiles显示正在激活的配置文件),但是,它不起作用。这些目录是在存储库中创建的,但只创建了一个用于.jar和.pom的.lastupdated文件。

我们得到的错误是POM找不到给定的工件。这是预料之中的,因为我们在插件的执行中使用<generatePom>true</generatePom>

任何想法,为什么这可能无法正常工作?

这里的POM的相关章节:

<profiles> 
    <profile> 
     <id>self-contained</id> 
     <activation> 
      <property> 
       <name>installBundledJars</name> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-install-plugin</artifactId> 
        <version>2.3.1</version> 
        <executions> 
         <execution> 
          <id>installCaseControlUpdateAPI</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/CaseControlUpdateAPI.jar</file> 
           <groupId>com.west.thomson.contech</groupId> 
           <artifactId>CaseControlUpdateAPI</artifactId> 
           <version>1.0</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
         <execution> 
          <id>installMQ</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/com.ibm.mq-5.304.jar</file> 
           <groupId>com.ibm</groupId> 
           <artifactId>mq</artifactId> 
           <version>5.304</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
         <execution> 
          <id>installMQJMS</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/com.ibm.mqjms-5.304.jar</file> 
           <groupId>com.ibm</groupId> 
           <artifactId>mqjms</artifactId> 
           <version>5.304</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
         <execution> 
          <id>installJADABAS</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/jadabas.jar</file> 
           <groupId>com.softwareag</groupId> 
           <artifactId>jadabas</artifactId> 
           <version>1.0</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
         <execution> 
          <id>installOJDBC</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/ojdbc14.jar</file> 
           <groupId>oracle</groupId> 
           <artifactId>ojdbc14</artifactId> 
           <version>10g</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    </profiles> 
+0

您可以重命名您的本地存储库并重新测试安装以查看它是否可用,但您需要远程存储库来下载maven插件等。此外,如果远程存储库已脱机,则无法工作,您必须告诉你的管理层/老板,每个人都应该改变它的责任。以这种方式工作是没有意义的。 – khmarbaise

+0

对不起,我应该更清楚。我们对我们的大部分插件使用maven central,并且工作正常。这个项目是在知道内部存储库已脱机的情况下创建的,所以我们没有在我们的POM中指定它(这完全是有意的)。我们试图使用'install:install-file'作为解决方法,因为我们确实有可用的.jar文件。 –

+0

最简单的解决方案是设置像Nexus,Artifactory之类的回购管理器或任何可以消除这些问题的东西。但是这当然不能回答你的问题。 – khmarbaise

回答

0

两个可能的问题,我能想到的, - 检查您是否已经在指定的路径中的库。 - 检查.m2仓库和运行mvn cmd的项目位置的权限。