我可以在maven生命週期中從http下載一些文件嗎?任何插件?Maven:從url下載文件
回答
如果該文件是Maven依賴項,則可以使用Maven Dependency Plugin,該目標有get
目標。您可以使用Antrun插件調用Ant的Get task。
另一種選擇將是maven-download-plugin,它已被精確創建,以促進這種事情。這不是非常積極的開發和文件只提到了一個artifact
的目標,做的事情完全一樣dependency:get
但是..如果你看看來源,你會看到,有一個WGET mojo將完成這項工作。
使用它像這樣在任何POM:
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.3.0</version>
<executions>
<execution>
<!-- the wget goal actually binds itself to this phase by default -->
<phase>process-resources</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<url>http://url/to/some/file</url>
<outputFileName>foo.bar</outputFileName>
<!-- default target location, just to demonstrate the parameter -->
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
這個插件的主要優勢是下載的緩存和核對簽名,如MD5。
請注意,此答案已大量更新以反映插件中的變化,如註釋中所述。
看起來像CodeHaus的wagon-maven-plugin允許通過HTTP下載文件(雖然這不是最初的目標)。
下面是一個例子下載前集成測試的GlassFish拉鍊:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>download-glassfish</id>
<phase>pre-integration-test</phase>
<goals>
<goal>download-single</goal>
</goals>
<configuration>
<url>http://download.java.net</url>
<fromFile>glassfish/3.1/release/glassfish-3.1.zip</fromFile>
<toDir>${project.build.directory}/glassfish</toDir>
</configuration>
</execution>
</executions>
</plugin>
它是否像maven-download-plugin一樣緩存本地存儲庫中的文件? – 2014-01-13 12:45:29
的Maven的antrun-插件是一個更直接的解決方案:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>download-files</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- download file -->
<get src="http://url/to/some/file"
dest="${project.build.directory}/downloads/"
verbose="false"
usetimestamp="true"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
我想補充一些東西關於下載maven-plugin:
- 項目現在託管在GitHub https://github.com/maven-download-plugin/maven-download-plugin
- 它的發行版在Maven Central上可用,並且SNAPSHOTs可在oss.sonatype.org快照庫中獲得
- 與此處提到的其他建議相比,download-maven-plugin添加了以下有趣功能:緩存文件避免總是重新下載大文件)和簽名驗證,以確保下載得到正確的位。
其中的應用程序的插件是什麼?蝕?爲什麼插件而不是獨立? – 2014-10-01 08:41:33
Maven的插件。點擊關於鏈接的鏈接,查看README的例子。 – Mickael 2014-10-01 09:34:15
等等,所以你下載maven,然後插入一個名爲「maven」的maven插件呢? – 2014-10-01 09:58:19
如果可以,wget的可以直接與exec-maven-plugin使用:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>wget</executable>
<arguments>
<argument>http://example.com/file.zip</argument>
<argument>destination.zip</argument>
</arguments>
</configuration>
</plugin>
這隻有在Maven運行的機器上有wget本身時纔可以使用。例如,如果在Windows上運行,wget將不可用。 – Kidburla 2016-11-01 18:33:05
可以在wagon
插件使用download-single
目標。下面是下載一個HTML頁面的例子(注意,該網址已經在一個「目錄」的網址和一個「文件名」被拆分)
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals><goal>download-single</goal></goals>
<configuration>
<url>http://www.mojohaus.org/wagon-maven-plugin</url>
<fromFile>download-single-mojo.html</fromFile>
<toFile>[my dir]/mojo-help.html</toFile>
</configuration>
</execution>
</executions>
</plugin>
- 1. 從URL下載Python文件
- 2. 從url下載pdf文件
- 3. 從url下載文件ColdFusion
- 4. 從url下載mp3文件
- 5. 從URL URL的PHP curl下載文件
- 6. 使用maven從nexus下載war文件
- 7. 如何從http URL下載文件
- 8. 音頻mp3文件從url下載
- 9. 從特定URL下載文件太慢
- 10. 從更改的URL下載Excel文件
- 11. Java - 從url下載壓縮文件
- 12. 使用Retrofit從URL下載HTML文件
- 13. 使用ashx從URL下載文件
- 14. 從url下載文件 - Javascript ajax
- 15. 使用Ruby從URL下載文件
- 16. 從給定的URL下載文件
- 17. 使用perl從url下載zip文件
- 18. 從URL下載種子文件
- 19. 從blackberry的url下載pdf文件?
- 20. Java - 如何從URL下載文件
- 21. PHP捲曲從URL下載空文件
- 22. 下載/從URL流文件 - asp.net
- 23. 正在從URL下載文件
- 24. 使用Java從HTTPS URL下載文件
- 25. 下載文件Qt中從URL
- 26. 從URL下載文件時引發FileNotFoundException
- 27. 從url下載文件到服務器
- 28. 從url下載生成文件
- 29. 從URL代碼VB.NET下載文件
- 30. 從URL自動下載文件
+1也可以檢查MD5校驗例如: 3921c19528d180902939b9f4c9ac92f1 –
2014-03-17 19:57:01
實際上'outputDirectory'不是'targetDirectory'。請更新您的答案...這讓我感到困惑了一段時間,因爲測試時我直接複製和粘貼你的XML,只改變了值... – Kidburla 2016-11-03 19:37:35
快進到2017年:這個答案有點過時; 'maven-download-plugin'被重命名爲(artifactId)爲'download-maven-plugin'。它包含在maven central中,你絕對不需要做svn checkout :)下面是使用例子的官方github repo的鏈接:https://github.com/maven-download-plugin/maven-download-plugin#wget -goal – 2017-01-12 10:56:09