1. 程式人生 > 其它 >nexus maven專案打包釋出及引用

nexus maven專案打包釋出及引用

引用

1.pom檔案中加入配置

    <repositories>
        <repository>
            <id>maven-public</id>
            <url>http://nexus3.luoyj.top/repository/maven-public/</url>
        </repository>
    </repositories>

2.加入依賴引用

    <dependency>
        <groupId>com.zlb</groupId>
        <artifactId>zlb-common</artifactId>
        <version>1.0.1</version>
    </dependency>

打包釋出

釋出有兩種方式,一種是手動,即登入到nexus後臺手動上傳。

另外一種,是通過maven外掛自動上傳發布。

1.編寫java程式碼

2.pom檔案中配置

    <groupId>com.zlb</groupId>
    <artifactId>zlb-common</artifactId>
    <version>1.0.1</version>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    ...

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.1</version>
                <configuration>
                    <!--對於有多個第三方依賴的情況,第三方包 META-INF下會有一些相同的MINIFEST檔案,maven-shade-plugin預設會使用追加而不是覆蓋的方式處理它們。由於一些包重複引用,打包後的 META-INF 目錄多出了一些 *.SF 等檔案,執行jar包時,可能會丟擲java.lang.SecurityException: Invalid signature file digest for Manifest main attributes異常。可以通過配置解決-->
                    <filters>
                        <filter>
                            <artifact>*:*</artifact>
                            <excludes>
                                <exclude>META-INF/*.SF</exclude>
                                <exclude>META-INF/*.DSA</exclude>
                                <exclude>META-INF/*.RSA</exclude>
                            </excludes>
                        </filter>
                    </filters>
                    <!--不在根目錄生成打包時的縮減後的pom的xml臨時檔案-->
                    <createDependencyReducedPom>false</createDependencyReducedPom>
                    <transformers>
                        <!--對這個同名檔案進行追加處理-->
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>reference.conf</resource>
                        </transformer>
                        <!--設定主函式-->
                        <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>cn.fht.test.test</mainClass>
                        </transformer>
                    </transformers>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>

        </plugins>
    </build>

    <distributionManagement>
        <repository>
            <id>maven-releases</id>
            <url>http://nexus3.luoyj.top/repository/maven-releases/</url>
        </repository>

        <snapshotRepository>
            <id>maven-snapshots</id>
            <url>http://nexus3.luoyj.top/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

3.maven配置檔案settings.xml中配置nexus賬號密碼

    <servers>
        <server>
            <id>maven-releases</id>
            <username>admin</username>
            <password>1234</password>
        </server>
        <server>
            <id>maven-snapshots</id>
            <username>admin</username>
            <password>1234</password>
        </server>
    </servers>

4.點選deploy按鈕或者執行命令

mvn clean deploy