2016-10-31 1 views
1

У меня есть несколько тестов для CI, все в maven. Сборка выполняется успешно, когда я запускаю их в eclipse в своем локальном (Windows 10), и когда я запускаю их через командную строку на сервере ec2 linux.Maven не работает на jenkins (но это происходит через затмение и командную строку)

Только тогда, когда я строю тот же проект с Дженкинс я получаю следующее сообщение об ошибке:

Ожидание Дженкинс, чтобы закончить сбор данных [ERROR] Не удалось выполнить голевые org.apache.maven.plugins: Maven-компилятор-плагин: 3.0: компиляция (по умолчанию-компиляция) в проекте invalidlogin: Ошибка при сохранении статуса mojo:/var/lib/jenkins/workspace/project/invalidlogin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst (Permission denied) -> [Помощь 1]

Im использует PhantomJS в качестве браузера.

Как заставить его работать от дженкинсов? Я обновил разрешения с помощью chmod, но я все равно получаю одинаковые результаты. Почему это будет проходить через консоль, но не через jenkins?

это мой ПОМ

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>InvalidLoginV1</groupId> 
    <artifactId>invalidlogin</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>invalidcredentials</name> 
    <description>invalidcredentials</description> 

    <properties> 
<suiteXmlFile>src/main/resources/testng.xml</suiteXmlFile> 

</properties> 

<dependencies> 
<dependency> 
    <groupId>org.testng</groupId> 
    <artifactId>testng</artifactId> 
    <version>6.8</version> 
    <scope>test</scope> 
</dependency> 

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-server</artifactId> 
    <version>2.34.0</version> 
    <scope>test</scope> 
</dependency> 

<dependency> 
    <groupId>com.github.detro.ghostdriver</groupId> 
    <artifactId>phantomjsdriver</artifactId> 
    <version>1.0.4</version> 
    <scope>test</scope> 
</dependency> 

<dependency> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19.1</version> 
    <type>maven-plugin</type> 
</dependency> 


</dependencies> 

<build> 


<plugins> 

    <plugin> 
      <groupId>com.github.klieber</groupId> 
      <artifactId>phantomjs-maven-plugin</artifactId> 
      <version>0.7</version> 
    </plugin> 



<plugin> 



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


</plugins> 

</build> 

</project> 
+1

Выглядит как проблема с разрешениями. Вы пытались предоставить разрешения на чтение и запись этим файлам пользователю jenkins? – Reimeus

+0

@Reimeus нет, я понял, что, поскольку я смог запустить их через командную строку, было нормально работать в jenkins. как я могу дать эти разрешения, пожалуйста? –

+0

На самом деле вы должны сначала проверить, что пользователь jenkins владеет всеми файлами в '/ var/lib/jenkins' и ниже, а затем делает' chmod' для установки разрешений – Reimeus

ответ

1

Проблема действительно с разрешениями. У меня было несколько вопросов, связанных с этим, однако я нашел это руководство здесь: http://blog.manula.org/2013/03/running-jenkins-under-different-user-in.html

В основном вам нужно добавить существующего пользователя на сервере в качестве пользователя jenkins. sudo vim /etc/sysconfig/jenkins

Как только это будет сделано, просто изменить владельца Дженкинс дома, WebRoot и журналы

chown -R user:user/var/lib/jenkins 
chown -R user:user/var/cache/jenkins 
chown -R user:user/var/log/jenkins 

Благодаря @Reimeus!

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