У меня есть два проекта Android в моем рабочем пространстве eclipse.Добавить проект eclipse lib на путь сборки maven?
Главный проект называется Hello, а другой проект android, который используется в качестве справочника библиотеки, называется HelloLibrary.
Я добавил проект HelloLibrary в путь сборки eclipse, щелкнув правой кнопкой проект Hello и добавив HelloLibrary в качестве проекта библиотеки.
Eclipse, удается найти, собрать и построить проект Hello, который в настоящее время использует код HelloLibrary но мавенный он не может найти проект HelloLibrary, когда я пытаюсь построить и запустить свои тесты с помощью:
mvn clean test -e
Полного стека след ниже:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project Hello: Compilation failure: Compilation failure:
[ERROR] /Users/Jonathan/Android work/Hello/src/test/java/com/example/hello/TestFullscreenActivity.java:[9,32] package com.example.hellolibrary does not exist
[ERROR] /Users/xxx/Android work/Hello/src/test/java/com/example/hello/TestFullscreenActivity.java:[30,17] cannot find symbol
[ERROR] symbol : class Lib
[ERROR] location: class test.java.com.example.hello.TestFullscreenActivity
[ERROR] /Users/xxx/Android work/Hello/src/test/java/com/example/hello/TestFullscreenActivity.java:[30,31] cannot find symbol
[ERROR] symbol : class Lib
[ERROR] location: class test.java.com.example.hello.TestFullscreenActivity
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project Hello: Compilation failure
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:858)
at org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:152)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
в любом случае, я могу добавить HelloLibrary в путь сборки Maven или мне нужно, чтобы создать сценарий артефакт Maven для HelloLibrary, а?
Оба являются проектами для Android.
Редактировать. я добавил это ПОМ файл Hello
<dependency>
<groupId>com.example.hellolibrary</groupId>
<artifactId>HelloLibrary</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>apklib</type>
<scope>compile</scope>
</dependency>
и тесты не удалось из-за не найдя объект класса Lib, расположенный внутри проекта HelloLibrary
Вот мой тестовый класс
/** * Тест класс */ @RunWith (RobolectricTestRunner.class) общественного класса TestFullscreenActivity {
private String stringOne = "hello";
private String stringTwo = "world";
@Test
public void test() {
Assert.assertEquals(true, false);
}
@Test
public void testTwo() {
Lib lib = new Lib();
Assert.assertEquals(stringOne+stringTwo, lib.combineText(stringOne, stringTwo));
}
@Test
public void testThree() {
Assert.assertEquals(true, true);
}
}
А вот класс Lib находится внутри проекта HelloLibrary
package com.example.hellolibrary;
/**
* Test lib with some random methods
* @author
*
*/
public class Lib {
public String combineText(String stringOne, String stringTwo){
String result = "";
result = stringOne + stringTwo;
return result;
}
}
Здесь верхняя половина файла пом используется для проекта HelloLibrary
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.hellolibrary</groupId>
<artifactId>HelloLibrary</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>apklib</packaging>
<name>HelloLibrary</name>
Благодарности
Приветствие я дам это идти, но при нажатии жить мне нужно будет использовать соответствующий зависимости Maven – jonney
thanks.maybe этой ссылки дает много трюков на зависимости Maven: HTTP: // stackoverflow.com/questions/2065928/maven-2-assembly-with-dependencies-jar-under-scope-system-not-included – pdem
Кажется, не работает. он не может найти ссылочный класс из проекта библиотеки. Артефакт загружается в локальном ремарке .m3, но он не может использовать объекты класса, поскольку он не может найти его. – jonney