Azure CI Pipeline не может построить решение Java / Maven с 2 проектами - PullRequest
0 голосов
/ 29 мая 2020

Резюме:

Я взял базовое c Java / Maven решение из курса и пытаюсь заставить его работать в Azure Конвейер CI. Решение Java содержит 2 проекта; у каждого есть свой собственный файл pom. Я могу создавать и выполнять тесты из Eclipse. Но когда я пытаюсь использовать решение в созданном мной конвейере Azure CI, оно каждый раз генерирует ошибку.

Что мне нужно изменить в файле конвейера Azure, чтобы все заработало? Спасибо.

Сообщение об ошибке:

2020-05-15T15:31:58.1123350Z Downloaded from central: https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar (315 kB at 3.6 MB/s)
2020-05-15T15:31:58.1124631Z [INFO] ------------------------------------------------------------------------
2020-05-15T15:31:58.1125092Z [INFO] BUILD FAILURE
2020-05-15T15:31:58.1125891Z [INFO] ------------------------------------------------------------------------
2020-05-15T15:31:58.1126382Z [INFO] Total time:  1.621 s
2020-05-15T15:31:58.1127089Z [INFO] Finished at: 2020-05-15T15:31:57Z
2020-05-15T15:31:58.1127980Z [INFO] ------------------------------------------------------------------------
2020-05-15T15:31:58.1129910Z [ERROR] Failed to execute goal on project Tests: Could not resolve dependencies for project com.pluralsight:Tests:jar:0.0.1-SNAPSHOT: Could not find artifact com.pluralsight:TestFramework:jar:0.0.1-SNAPSHOT -> [Help 1]
2020-05-15T15:31:58.1130901Z [ERROR] 
2020-05-15T15:31:58.1131330Z [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
2020-05-15T15:31:58.1132008Z [ERROR] Re-run Maven using the -X switch to enable full debug logging.
2020-05-15T15:31:58.1132234Z [ERROR] 
2020-05-15T15:31:58.1132574Z [ERROR] For more information about the errors and possible solutions, please read the following articles:
2020-05-15T15:31:58.1133037Z [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
2020-05-15T15:31:58.1149156Z No test result files matching /home/vsts/work/1/s/**/surefire-reports/TEST-*.xml were found, so publishing JUnit test results is being skipped.
2020-05-15T15:31:58.1177703Z ##[error]Build failed.
2020-05-15T15:31:58.1207997Z ##[section]Finishing: Maven

Java Информация о решении:

На этом снимке экрана показано общее Java структура решения и расположение файла конвейера Azure:

enter image description here

На этом снимке экрана показано, как структурированы два проекта Java:

enter image description here

Это файл конвейера Azure, который я уже создал:

# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: Maven@3
  inputs:
    mavenPomFile: './Tests/pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/surefire-reports/TEST-*.xml'
    goals: 'test'

Файл pom Maven для проекта Tests:

<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>com.pluralsight</groupId>
  <artifactId>Tests</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
	  <dependency>
			<groupId>com.pluralsight</groupId>
			<artifactId>TestFramework</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		
		<dependency>
			<groupId>junit</groupId>
	   		<artifactId>junit</artifactId>
	   		<version>4.12</version>
		</dependency>
	</dependencies>
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.6.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
  
  
</project>

Файл pom Maven для проекта TestFramework:

<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>com.pluralsight</groupId>
  <artifactId>TestFramework</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>3.4.0</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.6.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
  
</project>

Ответы [ 2 ]

0 голосов
/ 04 июня 2020

Я думаю, как и другие люди, это потому, что агент сборки не имеет артефакта TestFramework и не может извлечь его из любого места.
Код для TestFramework мог быть помещен в агент сборки, но он не был встроен в артефакт .
Вы упомянули, что можете запустить его со своего локального компьютера. Вероятно, это потому, что вы в какой-то момент построили TestFramework на этой машине. Вы можете заглянуть в каталог .m2, чтобы проверить.
Как упоминалось в другом комментарии, вы можете sh опубликовать зависимость или построить / скопировать артефакт в агент сборки.

0 голосов
/ 29 мая 2020

Ошибка явно связана с TestFramework. Вы должны загрузить свой TestFramework в пользовательский репозиторий или репозиторий maven.

Другой вариант - создать свой TestFramework и поместить его в свой репозиторий m2 контейнера. Затем вы можете получить доступ к проекту TestFramework

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...