2013-04-01 3 views
1

У меня возникла странная проблема.
Я работаю над проектом, использующим ProcessBuilder Class.
На моей локальной машине (Java6 и Java7 протестировано) я могу легко & mvn assembly:single Проект без каких-либо ошибок. Теперь я хочу, чтобы строить проект по travis-ci и побежал к следующей ошибкеОшибка компиляции Java/Maven (не найдено подходящего конструктора)

error: no suitable constructor found for ProcessBuilder(String)

full log file here.. но Javadoc for ProcessBuilder показать мне этот конструктор.
Мой .travis.yml выглядит следующим образом

language: java

jdk:
- oraclejdk7
- openjdk6
- openjdk7

after_success:
- mvn assembly:single

Любые идеи, почему строить терпит неудачу на Travis-CI?

Спасибо, F481

Edit:
Локально Я использую Maven 3, как Трэвис-CI тоже (Travis документ: "Travis Java строитель будет использовать Maven 3, чтобы построить его") Мои pom.xml: https://github.com/MultiServerControl/MineControl/blob/master/pom.xml
И ява код первой ошибки: this.processBuilder = new ProcessBuilder("");
полный класс доступен here

Edit2: я указал версию исходного и целевого для Maven компиляции, как это:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.0</version> 
     <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
     </configuration> 
</plugin> 

Теперь сборка работает на JDK7: https://travis-ci.org/MultiServerControl/MineControl/jobs/5963859

Но я не понимаю причину такого поведения .. и я хочу также построить проект для JDK 5,6.
Как я могу это сделать?

+0

Возможно, это ошибка компилятора openjdk. И он не может применять String к «public ProcessBuilder (String ... command)» constructor .. – Taky

+0

Хм .. если да, то почему orqle jdk build тоже не работает на travis-ci? : P – F481

+0

@ F481 Какая версия maven вы работаете локально? А какая версия на travis? Можете ли вы показать 'pom.xml' и код, вызывающий' ProcessBuilder'? – NilsH

ответ

0

я указал версию плагина Maven компилятора и версии исходной и целевой для компиляции, как это:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.0</version> 
     <configuration> 
      <source>1.5</source> 
      <target>1.5</target> 
     </configuration> 
</plugin> 

Теперь сборка работает! Огромное спасибо NilsH, который толкнул меня в правильном направлении.

Смежные вопросы