簡體   English   中英

用於用maven-antrun-plugin替換exec-maven-plugin的腳本

[英]script used for replacing exec-maven-plugin with maven-antrun-plugin

如果這最終成為一個愚蠢的問題,我深表歉意。

這與先前的問題有關

將exec-maven-plugin從1.1.1升級到1.2或1.3.2

本質上,我有一個Maven Java應用程序,該應用程序是通過Jenkins中的命令行運行的(或要測試的命令窗口)。 它在主服務器上運行需要一個小時左右的處理(在較小的計算機上需要2天!)。 它已經與exec-maven-plugin 1.1.1一起運行。 我最近更新了一些依賴關系,奇怪的是,它現在掛在處理的末尾,而以前沒有。 我在Google上搜索了一下,雖然我不完全理解為什么這似乎是一個已知問題。 我試圖將exec-maven-plugin升級到1.3.2,但是失敗了,這就是上面的問題。 實際上,我想我已經被跟蹤了,我認為我需要找到一種不同的方式來運行代碼(?)。 把我帶到這個問題的重點...

我最常看到的答案(我在Windows環境中工作),有人評論說要用maven-antrun-plugin替換exec-maven-plugin。 奇怪的是,盡管我在互聯網上找到的主要示例並沒有真正顯示出除運行echo命令外還可以做更多的事情。 如果我正確理解,我需要運行Ant exec命令從Main proc運行代碼,並可能運行另一個腳本以在完成時停止主線程(實際上我對此不太清楚)。 我只是無法理解腳本中應該做什么。 我應該查看Ant文檔以了解如何構建build.xml文件(我假設不是因為它是Maven應用,這似乎是一個后退的步驟),還是應該運行一些dos命令來執行一些任務?或一些內置的ant命令?

只是重申一下,我不希望有人為我編寫腳本(!),但此刻我只是不太了解自己要在腳本中實現什么,應該輸入什么級別的命令?它或如何開始。 如果有人能指出正確的方向或通過指向某些地方的清晰文檔向我展示,我將不勝感激。

如果我不清楚,我一直在使用

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>    
<executions>
    <execution>
        <phase>install</phase>
        <goals>
            <goal>java</goal>
        </goals>
        <configuration>
            <mainClass>com.org.dc.dcClient</mainClass>
        </configuration>
</execution>

我認為解決我的問題(Maven無法重新控制代碼競爭)的方法是將其更改為類似於

<build>
  <plugins>
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.1</version>
        <executions>
           <execution>
              <phase>install</phase>
              <goals>
                 <goal>run</goal>
              </goals>
              <configuration>
              <tasks>
                 <echo>Using Ant Run</echo>
                 <exec [script]"/>
              </tasks>                  
              </configuration>
           </execution>
        </executions>

謝謝

如果您只需要執行一個Java類,則將以下行添加到pom中即可完成工作。

    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
      <execution>
        <phase> <!-- a lifecycle phase --> </phase>
        <configuration>
          <target>
            <java classname="test.Main">
             <arg value="-h"/>
             <classpath>
               <pathelement location="dist/test.jar"/>
               <pathelement path="${java.class.path}"/>
             </classpath>
           </java>
          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>

注意目標標簽之間的部分。 您需要處理classpath等的配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM