由于有些Jar包不是开源的,在maven remote repositories找不到相应的包,所以得通过自有的Jar包在local repositories中添加jar。然后在pom.xml中添加相应的dependency,就能用本地的jar了。
首先,在本地在添加Jar,它的格式为:
mvn install:install-file
-Dfile=<path-to-file>
-DgroupId=<group-id>
-DartifactId=<artifact-id>
-Dversion=<version>
-Dpackaging=<packaging>
-DgeneratePom=true
Where: <path-to-file> the path to the file to load
<group-id> the group that the file should be registered under
<artifact-id> the artifact name for the file
<version> the version of the file
<packaging> the packaging of the file e.g. jar
然后将相应的jar拷到对应的目录下,在pom.xml文件中添加相应的denpendency,它的格式为:
<dependency>
<groupId>group-a</groupId>
<artifactId>artifact-a</artifactId>
<version>1.0</version>
</dependency
下面提供一个样例,这里我要用到weblogic,本地有自有weblogic.jar,如是,
1.
mvn install:install-file
-Dfile=D:\lib\weblogic.jar
-DgroupId=weblogic
-DartifactId=weblogic
-Dversion=10.3
-Dpackaging=jar
-DgeneratePom=true
将weblogic.jar拷到C:\Documents and Settings\s\.m2\repository\weblogic\weblogic路径下。
2.
<dependency>
<groupId>weblogic</groupId>
<artifactId>weblogic</artifactId>
<version>10.3</version>
</dependency>
然后在当前pom.xml路径下运行mvn package.
但奇怪的是编译不通过,出现如下错误:
Could not resolve dependencies for project com.sx.teest1:test1:jar:1.0-SNAPSHOT: Failure to find weblogic:weblogic:jar:10.3 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
在网上找了很久是update机制的问题,但是在.setting.xml文件后还是出现同样的错,苦思不得其解,然后比较了denpendency能使用的jar和这个denpendency的不同之处,最后发现刚才拷过来的jar没有相应的改文件名,这里由于刚才install的是10.3版本的jar,所以weblogic.jar应该改为weblogic-10.3.jar,改了之后再次运行就能通过了。看来还是自己粗心大意了。拷jar包的时候一定要相应的改jar包的名字。
另外还发现在Install的时候文件路径名不要有空格,否则会出现一些诡异的错误会让你崩溃的!
关于maven技术还在学习中,欢迎大家来拍砖,互相学习。