Я пытаюсь скомпилировать на своей машине плагин sonar-csharp, но в файле pom.xml есть две зависимости, которых нет в общедоступные репозитории Maven:
<dependency>
<groupId>org.sonarsource.dotnet</groupId>
<artifactId>sonar-dotnet-tests-library</artifactId>
<version>1.5.0.393</version>
</dependency>
<dependency>
<groupId>org.sonarsource.dotnet</groupId>
<artifactId>sonar-dotnet-shared-library</artifactId>
<version>1.0.1.138</version>
</dependency>
Я загружаю код обоих проектов и пытаюсь скомпилировать их и создать файлы .jar для каждого из них.
Пытаясь скомпилировать sonar-dotnet-shared-library-1.0.1.138, я установил https://www.nuget.org/packages/SonarAnalyzer.CSharp/1.20.0 и приступайте к его установке в моем локальном репозитории maven, а затем, когда я компилирую sonar-dotnet-shared-library-1.0.1.138, я получить :
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (unzip-nuget) on project sonar-dotnet-shared-library: An Ant Build Exception has occured: C:\Temp\sonar-dotnet-shared-library-1.0.1.138\target\analyzer\SonarAnalyzer.Scanner\protobuf does not exist.
[ERROR] around Ant part ...<copy todir="src/main/protobuf">... @ 8:35 in C:\Temp\sonar-dotnet-shared-library-1.0.1.138\target\antrun\build-main.xml
Я думаю, что я в аду Maven.
Что мне нужно сделать, чтобы собрать код из последнего релиза sonar-csharp-plugin??
Редактировать: когда я устанавливал SonarAnalyzer, я использовал
mvn install:install-file -DgroupId=org.sonarsource.dotnet -DartifactId=SonarAnalyzer.Scanner -Dversion=1.20.0 -Dpackaging=nupkg -Dfile="C:\Temp\SonarAnalyzer.CSharp.1.20.0-RC1.nupkg"
Я отключаю задачи, которые генерируют ошибку, теперь java-код начинает свою компиляцию, но я получаю ошибки, связанные с
import org.sonarsource.dotnet.protobuf.SonarAnalyzer;
Я думаю, что это ссылка на SonarAnalyzer Dll, но ни Eclipse, ни Maven не могут ее найти (protobuf отсутствует)
Изменить2:
POM.XML включает следующие задачи:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>unzip-nuget</id>
<phase>validate</phase>
<configuration>
<exportAntProperties>true</exportAntProperties>
<tasks>
<unzip src="${sonarAnalyzer.workDirectory}/SonarAnalyzer.Scanner.nupkg" dest="${sonarAnalyzer.workDirectory}/SonarAnalyzer.Scanner/" />
<delete>
<fileset dir="src/main/protobuf" excludes=".gitignore"></fileset>
</delete>
<copy todir="src/main/protobuf">
<fileset dir="${sonarAnalyzer.workDirectory}/SonarAnalyzer.Scanner/protobuf">
<include name="*.proto"/>
</fileset>
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>compile-protobuf-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<fileset id="fileset" dir="${project.basedir}/src/main/protobuf">
<include name="*.proto" />
</fileset>
<pathconvert refid="fileset" property="protos" pathsep=" " />
<mkdir dir="${project.build.directory}/generated-sources/protobuf" />
<chmod file="${protobuf.compiler}" perm="u+x" />
<exec failonerror="true" executable="${protobuf.compiler}">
<arg value="proto_path=${project.basedir}/src/main/protobuf" />
<arg value="java_out=${project.build.directory}/generated-sources/protobuf" />
<arg line="${protos}" />
</exec>
</target>
</configuration>
</execution>
</executions>
Как я понимаю, в SonarAnalyzer.Scanner.nupkg должна быть папка protobuf, а содержимое этой папки копируется в src/main/protobuf.....ну SonarAnalyzer.Scanner.nupkg скачанный с Nuget не содержит этого папка....итак....
ребята из Sonar...... Где взять этот nupkg?