TL宣佈的Eclipse進口的依賴; DR了在一個Maven檔案
我必須在Maven的配置文件聲明一些依賴性和Eclipse是不能夠解決的包。下圖中的示例。
全文
嗨給大家:d
現在我在一個非常可疑的項目情況工作。我正在開發一個基於Spring Web MVC的Web應用程序,並且我正在使用Google AppEngine DevServer進行本地開發,即使我正在認真考慮從GAE遷移出於非常明顯的原因。
爲什麼項目是基於GAE的原因是因爲我只是繼續工作別人開始時間前。
不管怎麼說,在開發和增加應用功能,它來到這裏persitence引擎成爲需要時間。我決定實現MongoDB,是的,我知道你不能在GAE環境中使用任何其他東西而不是Datastore。作爲持久層我正在使用MongoRepository。到現在爲止,一切都很好。
測試時間到了時出現問題。爲了實施集成測試,我使用了內存數據庫Fake Mongo Fongo以及用於數據填充的NoSQLUnit。
主要問題是Fongo需要蒙戈Java驅動程序爲了工作,我不能把它聲明,也沒有任何其他JDBC的依賴,因爲GAE DevServer將無法正常工作。我不在應用程序中使用java-mongo-driver軟件,而不是通過Fongo在集成測試中間接使用。
的解決方案是簡單地跳過所有的測試源代碼編譯並在一個單獨的Maven宣佈他們所以每次我要在本地服務器我直接跳過所有的測試上部署。這不是問題,因爲我使用Jenkins的CI和SonarQube進行覆蓋(使用JaCoCo),因此我可以在那裏簡單地執行測試。
現在,我有我的與普通部分所有應用依賴的pom.xml這樣我就可以mvn clean install -Dmaven.test.skip=true
,然後我有一個<profile>
聲明如下:
<profile>
<id>testing</id>
<dependencies>
<dependency>
<groupId>com.github.fakemongo</groupId>
<artifactId>fongo</artifactId>
<version>2.0.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.lordofthejars</groupId>
<artifactId>nosqlunit-mongodb</artifactId>
<version>0.7.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.4.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<junitArtifactName>junit:junit</junitArtifactName>
<encoding>UTF-8</encoding>
<inputEncoding>UTF-8</inputEncoding>
<outputEncoding>UTF-8</outputEncoding>
</configuration>
</plugin>
</plugins>
</build>
</profile>
,所以我可以mvn clean test -Ptesting
每當詹金斯檢測推。
的問題是,我不能在Eclipse中寫代碼,因爲自從他們的輪廓正在宣佈它不能解決進口。例如。
如何導入和使用我在Maven配置文件中聲明的包?
謝謝:)
P.S:我決定告訴完整的故事,所以也許別人誰是或將要通了同樣的問題可以找到它。我沒有找到java-mongo-driver和GAE的解決方案,而不是定義配置文件和跳過測試。
作爲一種變通方法,您可以嘗試手動添加缺少的依存關係到Eclipse項目的classpath設置(除POM說的話)。 – Thilo
我也在想這個,因爲這是一個IDE問題。真正令我驚訝的是,我無法找到解決方案 – Razvi