Maven2如何使用私有Repository

<link rel="stylesheet" type="text/css" href="http://maomaode.bokeland.com/plugins/plogeshi/styles/plogeshi.css">早在Celtix, 和之前的CXF里,我们在maven里定义私有的Repository, 因为我们所依赖的Jar, 还没发布到Maven的Repository里,或者,那个项目压根儿就不用maven来构建。
配置其实很简单:
修改pom.xml, 加入下面这个片段,

    <repositories>
        <repository>
            <id>private-repo</id>
            <name>private repo</name>
            <url>file:${basedir}/${topDirectoryLocation}/maven_repo</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
 


并定义这个变量:

    <properties>
        <topDirectoryLocation>.</topDirectoryLocation>
     </properties>
 

在maven_repo里就可以存放你得jar, 目录结构应该和.m2/repository一致
如果jar还没有pom, 则需要写一个pom, 例如下面就是一个例子:
<link rel="stylesheet" type="text/css" href="http://maomaode.bokeland.com/plugins/plogeshi/styles/plogeshi.css">

 
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>htmlunit</groupId>
  <artifactId>htmlunit-patch</artifactId>
  <version>1.10</version>
  <name>htmlunit patch jar</name>
  <url>http://htmlunit.sf.net</url>
  <distributionManagement>
    <downloadUrl>http://htmlunit.sf.net</downloadUrl>
  </distributionManagement>
  <dependencies>
    <dependency>
      <groupId>htmlunit</groupId>
      <artifactId>htmlunit</artifactId>
      <version>1.10</version>
    </dependency>
  </dependencies>
</project>
 

此外你还需要为jar, 和pom ,做出sha1文件,可以使用工具sha1sum, windows上需要安装cygwin才可以使用这个工具。

Maven 在无法找到这个artifact时候才会去private repository里找, 并安装到.m2目录下。之后就不会从这个目录取了
所以他和运行时classpath没有关系,Maven不会把private repo里的patch jar放在classpath的最前面,maven 本身并不能让我们来改变classpath, 所以如果是你自己的patch jar, 你无法通过这个方法来得到解决,唯一的解决方法就是把你的patch 和原jar合并为一个。或者是用fant来解决您的问题。

你可能感兴趣的:(maven,.net,windows,xml,css)