Скажем, если бы я этого захотел:
Код: Выделить всё
import org.apache.commons.lang3.StringUtils;
public class Shout {
public static void main(String[] args) {
new Shout().shout();
}
public void shout() {
StringUtils.upperCase("help!");
}
}
Вышеупомянутое зависит от StringUtils, но мне не нужен apache-commons .jar упакован в мой Shout.jar. Вместо этого я хотел бы найти способ (если это вообще возможно), чтобы Gradle или Maven автоматически определяли, какие зависимости необходимы Shot.jar в веб-приложении, которое будет использовать Shout.jar.
Я пытался создать библиотеку с помощью Gradle (применив плагин java-библиотеки) и с помощью Maven (с плагином jar), но все равно, когда я поместил свой Shot.jar в качестве зависимости Gradle - он не разрешил StringUtils ...
Нужно ли мне что-то конкретное сделать на стороне jar, чтобы Gradle и Maven были довольны разрешением зависимости моего jar?
ОБНОВИТЬ с более подробной информацией
Извините за некоторую расплывчатость. Я попробую еще раз с более подробной информацией.
Итак, допустим, у меня есть класс Shout в проекте maven. То же самое, что и выше:
Код: Выделить всё
import org.apache.commons.lang3.StringUtils;
public class Shout {
public static void main(String[] args) {
new Shout().shout();
}
public void shout() {
StringUtils.upperCase("help!");
}
}
Код: Выделить всё
michal
shout
1.0-SNAPSHOT
org.apache.commons
commons-lang3
3.6
Если я создам еще один проект под названием usingShout, на этот раз Gradle с конфигурацией Gradle:
Код: Выделить всё
group 'michal'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile group: 'michal', name: 'shout', version: '1.0-SNAPSHOT'
}
(кстати, pom.xml то же самое, что и выше)
И я пытаюсь сделать:
Код: Выделить всё
public class UsingShout {
public static void main(String[] args) {
new UsingShout().go();
}
private void go() {
new Shout().shout();
}
}
Код: Выделить всё
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/469 ... -libraries