Maven使用

用IDEA建了一个maven项目,想打包成jar放到本地~/.m2/repository中。

1. 安装maven

  1. 检查是否已安装: $ mvn -v
  2. 解压到/opt/apache-maven-3.3.9
  3. 打开
    1
    $ subl ~/.zshrc
    我用的是zsh,如果是原生bash的话,就是.bashrc文件了。
    在文件末尾添加
    1
    2
    3
    # maven
    export MAVEN_HOME=/opt/apache-maven-3.3.9
    export PATH=$PATH:${MAVEN_HOME}/bin
    然后,执行 source ~/.zshrc 让配置立即生效。
    你可以输入 mvn -vecho $MAVEN_HOMEecho $JAVA_HOME等查询系统环境。

2. 打包,发布

建立一个maven项目,进入根目录,执行 mvn package,等待结束。
温馨提示pom.xml文件中要有<packaging>jar</packaging> 哦。
然后参照 执行命令

1
mvn install:install-file -Dfile=/home/hero/workspace/git/Commons/target/commons-1.0.jar -DgroupId=moc.hero -DartifactId=commons -Dversion=1.0 -Dpackaging=jar

其中-Dfile=就是你jar包,上面的Commons就是我的根目录,命令就是在这里执行的。
这样你的~/.m2/repository中就有了/home/hero/.m2/repository/moc/hero/commons,你可以在本地新建一个maven项目,然后去依赖这个commons了。

当然了,更全更简单的在官网喽。

插件方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/java</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<packaging>${project.packaging}</packaging>
<version>${project.version}</version>
<file>${project.basedir}/target/${project.name}-${project.version}.${project.packaging}</file>
</configuration>
</plugin>
</plugins>
</build>

配置resources可以将配置文件打到jar包中(默认打包只打编译后的class文件)。运行compiler:compile 和 install:install-file即可。

Maven 基础

dependencies与dependencyManagement的区别

私服搭建

下载Nexus Repository OSS
参考

deploy

setting.xml

1
2
3
4
5
6
7
8
9
10
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>

pom.xml

1
2
3
4
5
6
7
8
9
10
<distributionManagement>
<repository>
<id>releases</id>
<url>http://127.0.0.1:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>

指定私服的host地址

pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<repositories>  
<repository>
<id>releases</id>
<name>releases</name>
<url>http://127.0.0.1:8081/repository/maven-releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>