我有一個很奇怪的問題。前段時間我分叉liquibase-hibernate
,因爲我找到了bug並解決了它。maven liquibase插件沒有找到jitpack依賴關係
雖然這pull request beeing接受,我部署我的liquibase-hibernate4
插件到本地artifactory,一切都OK。
但現在它出現了問題。我必須在一個項目中使用這個依賴項,我不能使用我的本地工具。所以我用JitPack存儲庫這樣:
新增JitPack在pom.xml
庫:
<repositories>
...
<repository>
<id>jitpack.io</id>
<url>http://jitpack.io</url>
</repository>
...
</repositories>
然後加入依賴:
...
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.github.malaguna</groupId>
<artifactId>liquibase-hibernate</artifactId>
<version>liquibase-hibernate4-3.6.1</version>
</dependency>
我跑mvn compile
或mvn package
和它工作得很好。但是我也配置了maven-liquibase-plugin
,並在內部包含相同的依賴關係,因爲插件無法正常工作。
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<propertyFile>target/classes/liquibase.properties</propertyFile>
</configuration>
<dependencies>
<dependency>
<groupId>com.github.malaguna</groupId>
<artifactId>liquibase-hibernate</artifactId>
<version>liquibase-hibernate4-3.6.1</version>
</dependency>
....
現在,當我運行mvn resources:resources liquibase:diff
我可以看到行家如何試圖從Maven的中央讓我liquibase-休眠神器:
[INFO] --- liquibase-maven-plugin:3.4.1:diff (default-cli) @ project ---
Downloading: http://repo.maven.apache.org/maven2/com/github/malaguna/liquibase-hibernate/liquibase-hibernate4-3.6.1/liquibase-hibernate-liquibase-hibernate4-3.6.1.jar
...
然後它失敗
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.4.1:diff
(default-cli) on project xxxxx: Execution default-cli of goal
org.liquibase:liquibase-maven-plugin:3.4.1:diff failed:
Plugin org.liquibase:liquibase-maven-plugin:3.4.1 or one of its
dependencies could not be resolved: Could not find artifact
com.github.malaguna:liquibase-hibernate:jar:liquibase-hibernate4-3.6.1 in central
(http://repo.maven.apache.org/maven2) -> [Help 1]
爲什麼maven試圖從maven central,而不是jitpack,從maven-liquibase-plugin調用時下載工件?我怎樣才能避免這種情況?
正如我之前所說的,當運行編譯或包時它運行良好,工件被下載。
是否在'〜/ .m2/settings.xml'中設置了代理? –
不,我有兩個設置,一個用於artifactory,另一個沒有配置。它與artifactory運行良好,因爲artifactory通過codehaus-cache找到jitpack artifact。問題來了,如果我不想使用artifactory。 – malaguna
liquibase-maven-plugin是否尊重「外部」存儲庫設置?看起來他們正在旋轉一個單獨的配置,它不考慮你的存儲庫配置。 –