1. 程式人生 > >maven-antrun-plugin的簡單使用(複製jar包到指定目錄,複製檔案到伺服器,連線伺服器執行命令)

maven-antrun-plugin的簡單使用(複製jar包到指定目錄,複製檔案到伺服器,連線伺服器執行命令)

引入依賴(因為要實用if for 等等這樣的標籤)
<dependency>
   <groupId>ant-contrib</groupId>
   <artifactId>ant-contrib</artifactId>
   <version>1.0b3</version>
</dependency>
引入外掛(maven-antrun-plugin),我會在註釋中描述含義
<build>
    <plugins>
        <!--spring boot 專案打包外掛-->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!--暫時用作指定jdk版本號-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <!--複製jar包到指定檔案目錄,連線伺服器,複製檔案到伺服器-->
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant-jsch</artifactId>
                    <version>1.8.2</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>copy</id><!--需要唯一-->
                    <phase>package</phase><!--當執行package操作時執行一下任務-->
                    <configuration>
                        <tasks><!--任務-->
                            <echo message="start.................................."/><!--列印-->
                            <echo message="load maven plugin ant-contrib-1.0b3"/>
                            <!--載入plugin ant-contrib的配置檔案-->
                            <taskdef resource="net/sf/antcontrib/antlib.xml">
                                <classpath><!--載入jar包,${settings.localRepository}的值是你maven settings檔案中配置的本地倉庫位置-->
                                    <pathelement location="${settings.localRepository}/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar"/>
                                </classpath>
                            </taskdef>
                            <!--複製jar包-->
                            <if>
                                <equals arg1="${copy.jar}" arg2="true"/><!--是否複製jar包-->
                                <then>
                                    <echo message="Copy jar to your desired path."/>
                                    <copy todir="${copy.jar.dir}/${project.artifactId}" overwrite="true"><!--執行復制操作,todir的值是將要複製jar包到的地方,overwrite是否重寫-->
                                        <fileset dir="${project.build.directory}"><!--${project.build.directory}值是你的target目錄-->
                                            <include name="*.jar"/><!--target目錄下的jar包-->
                                        </fileset>
                                    </copy>
                                </then>
                            </if>
                            <!--列印-->
                            <echo message="pom type:${project.packaging}"/>
                            <echo message="target path:${project.build.directory}"/>
                            <echo message="maven local repository:${settings.localRepository}"/>
                            <echo message="if pom type equals pom,delete ant generate target and antrun folder"/>
                            <echo message="${project.build.finalName}"></echo>
                            <!--
                            因為 maven-antrun-plugin 執行後,會在你的專案中生成一個target/antrun/build-main.xml,
                            在packageing=pom的專案下也會生成一個這樣的檔案和檔案目錄,個人覺得很煩,索引引入ant-contrib依賴,
                            如果你覺得不煩,可以不新增ant-contrib依賴,下邊的if標籤也不能使用.
                            -->
                            <!--刪除-->
                            <if><!--if 標籤-->
                                <equals arg1="${project.packaging}" arg2="pom"/> <!--判斷當前pom檔案的packageing是否是pom型別,-->
                                <then><!--如果是pom型別則刪除 該專案下的target目錄-->
                                    <echo message="delete ${project.build.directory}"/>
                                    <delete dir="${project.build.directory}"/>
                                </then>
                            </if>
                            <!--上傳檔案
                            	file: 檔案路徑或者檔名稱
                            		${project.build.directory} 指向target目錄
                            		${project.build.finalName} 打包名稱
                            	todir: 目標伺服器ip地址和檔案路徑
                            -->
                            <scp file="${project.build.directory}\${project.build.finalName}.jar"
                                 todir="username:
[email protected]
:/root/jar_project" trust="true"/> <!--連線虛擬機器 file: 檔案路徑或者檔名稱 command 執行命令 --> <sshexec host="ip" username="username" password="password" command="ls" trust="true"/> <echo message="end.................................."/> </tasks> </configuration> <goals><!--暫時不知道什麼意思,有知道給評論一下--> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

相關推薦

Maven 複製jar指定目錄

    在完成模組開發後,需要釋出jar到nexus上,與此同時,則要部署開發的模組,需要將編譯打包的jar複製到指定的路徑,再進行部署,而不是手動的去複製那些jar,因為當模組多的話,則會感到特別的煩,所以,利用maven整合的ant來進行這些操作。pom.xml檔案配置如下:

Maven 本地倉庫明明有jar,但是pom檔案還是報錯解決辦法

方法一 找到出錯的jar包檔案位置,刪掉_maven.repositories檔案 (或用文字編輯器開啟,將“>XX=”改為“>=”,即刪除main,當然main也可能是其他值) ,然

錯誤點選jar將導致bat檔案和exe視窗執行不了,jar執行

伺服器部署jar包,在這裡提供兩種執行方式和錯誤點選jar包的解決辦法 1.鍵盤 windows+R鍵輸入cmd 按照以下方式輸入: (1) D:        ==> (2) cd D:\hdd\grjbxx ==>(3)java -jar aaa.j

maven-antrun-plugin簡單使用(複製jar指定目錄,複製檔案伺服器,連線伺服器執行命令)

引入依賴(因為要實用if for 等等這樣的標籤) <dependency> <groupId>ant-contrib</groupId> <artifactId>ant-contrib</art

Maven構建成功後複製jar指定位置外掛

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactI

maven: 給jar指定 定製的 logback.xml

This example shows you how to use Maven to exclude the logback.xml file from the final Jar file. Not

maven將手動下載的jar安裝到本地倉庫

googl 參考 jar .org 本地倉庫 r文件 gin maven aging <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4

Intellij IDEA 中如何查看maven項目中所有jar的依賴關系圖

alt 為我 表示 都是 小技巧 看到了 我們 輸入框 理論 Maven 組件界面介紹 如上圖標註 1 所示,為常用的 Maven 工具欄,其中最常用的有: 第一個按鈕:Reimport All Maven Projects 表示根據 pom.xm

eclipse下maven管理web開發,jar無法編譯出來的問題

color cep 文件 add trie path pri ring build 問題:   使用maven創建spring的web項目,debug之後報錯:     ...classNotFoundException: org.springframework.web.c

spring maven項目解決依賴jar版本沖突方案

acc ans ng- amp 解決方案 depend pri expected zhong 引入:http://blog.csdn.net/sanzhongguren/article/details/71191290 在spring reference中提到一個解決s

maven工程中導入三方jar控制引入版本的小知識

tis aop model pen framework lns cor log4j 版本號 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM

Maven----將手動下載的jar命令行的方式安裝到本地MavenRepository中

spring finish cal mis boot body exce art failed 1.情景再現:準備實現SprintBoot的熱部署功能,因沒有對應jar時,在Eclipse中mvn install 會報錯:   報錯信息: [INFO] --- sprin

關於Maven項目引入外部jar的方式

jar tid sim dos .cn pos xxx pack src 在項目中有時候需要引入一些外部jar包,這些jar從中央倉庫是找不到的,如果是普通web工程直接將jar放在WEN-INF\lib下再add build to path就行了,但是maven項目這麽

Maven工程打成一個jar

dsa put eas rip div hot over director con 1:maven-shade-plugin 插件 <plugin> <groupId>org.apache.maven.plugins</grou

Maven 本地倉庫明明有jar,pom文件還是報錯解決辦法

lips rep win 選擇 class osi 方案 pom nbsp 方法一: 找到出錯的jar包文件位置,刪掉_maven.repositories文件 方法二: maven中的本地倉庫的index索引沒有更新導致 解決方案:

maven 如何將自己的jar添加到本地倉庫

ima AI 技術 tid cti 添加 height 本地 fff 1 準備一個需要添加到本地倉庫的jar包 我這裏準備了一個名為mail.jar 的jar包,放到E:\Install Files目錄下面 2 下面演示如何將準備的jar包添加到本地倉庫 1

構建Maven項目自動下載jar

轉載 gravity alt blank LV SM pan fontsize 需要 使用Maven 自動下載jar包 右鍵單擊項目,將項目 轉換成Maven 項目 然後進去Maven官網 http://mvnrepository.com/ 這裏有大量的j

maven+IDEA+jar讀取外部配置檔案

1、工程結構如下 src是jar的原始碼路徑,如果jar要讀取和它同一級目錄下的conf資料夾下的配置檔案就在src同一級目錄下建立一個conf資料夾 裡面放上配置檔案就可以了 2、測試程式碼如下

**maven專案匯入spring相關jar版本相容問題**

maven專案匯入spring相關jar包版本相容問題 啟動出現的異常如下: 十一月 02, 2018 10:56:12 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Se

Maven實戰-由一次jar衝突來詳述 Maven 依賴範圍及依賴調節原則

這篇文章的緣由是剛來搭建的專案有jar包衝突,報下面這個錯基本就是servlet-api包衝突無疑了 Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitia