在日常工作中,我们经常为外系统提供jar包,难免需要将jar包上传到指定私服地址,jar报的上传,这里做一个简单的介绍;
首先我们需要准备jar包,对应的pom文件,如果jar包有依赖,再上传时,我们需要把用到的依赖包,一并上传;
如果没有pom文件,我们可以根据依赖关系,自己写一个pom文件;
下面我们看一下 相关配置:
1.配置maven的setting文件:
<?xml version="1.0" encoding="UTF-8"?>
<servers> <server> <id>nexus-releases</id> <username>******Uploader</username> <password>******uploader</password> </server> <server> <id>******_privrepository_snapshots</id> <username>******Uploader</username> <password>******uploader</password> </server> </servers><!-- 私服的用户名和密码 -->
<!-- 私服地址 --> <profiles> <profile> <id>bxbank</id> <repositories> <repository> <id>bxbank</id> <name>******_privrepository_releases</name> <url>http://10.*.**.***:9**0/repository/******_privrepository_releases</url> <releases><enabled>true</enabled>
<updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy></releases> <snapshots><enabled>false</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>bxbank</id> <name>bxbank_privrepository_snapshots</name> <url>http://10.*.**.***:9**0/repository/******_privrepository_snapshots</url> <releases><enabled>false</enabled>
<updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile></settings> 2.将pom文件和jar包放到同级目录下,执行maven命令:如果没有pom文件,可以自己写一个,有依赖关系的后面会写:()
<?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.******.******</groupId> <artifactId>s**-********-son</artifactId> <version>1.1.0-snapshot</version> </project>
这是有依赖关系的pom文件:
3.编写上传脚本:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <name>U**-Generator</name> <description>Distributed unique id generator</description> <groupId>******.i****a.utils</groupId> <artifactId>global-uid-generator</artifactId> <version>1.1.0-GA</version> <packaging>jar</packaging> <!-- Properties --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <jdk.version>1.7</jdk.version> <spring.version>4.2.5.RELEASE</spring.version> <slf4j-version>1.7.7</slf4j-version> </properties> <!-- Dependencies --> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.19</version> </dependency> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> <version>3.5.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <!-- For deploy --> <distributionManagement> <repository> <id>****** Releases</id> <name>****** release</name> <url>http://1*.*.**.***:****/repository/******_privrepository_releases/</url> </repository> <snapshotRepository> <id>****** Snapshots</id> <name>****** snapshots</name> <url>http://1*.*.**.***:****/repository/******_privrepository_snapshots/</url> </snapshotRepository> </distributionManagement> <!-- Repositories --> <repositories> <repository> <id>****** Releases</id> <url>http://1*.*.**.***:****/repository/******_privrepository_releases/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>****** Snapshots</id> <url>http://1*.*.**.***:****/repository/******_privrepository_snapshots/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>****** Central</id> <name>****** Proxy Repository</name> <url>http://1*.*.**.****:****/repository/******_central/</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </project>
mvn deploy:deploy-file -Dfile=s**-******-1.1.0-snapshot.jar -DgroupId=com.****.****** -DartifactId=s**-******-1.1.0-snapshot -Dversion=1.1.0-snapshot
-DpomFile=s**-******-1.1.0-snapshot.pom -DrepositoryId=******_privrepository_releases -Durl=http://1*.*.**.***:****/repository/******_privrepository_
releases/ -DrepositoryId=nexus-releases
DrepositoryId要与setting文件中<profile>标签中的name值对应,地址与私服地址对应