#spring #eclipse #maven
#весна #затмение #maven
Вопрос:
Я дал следующую структуру (Maven Spring). Для DependencyService
меня интересуют только некоторые модели (классы Java, которые я хочу использовать повторно, а не только копировать и вставлять). Из-за некоторых вещей docker я не могу запустить DependencyService
из eclipse, мне нужно настроить несколько вещей. Вот почему я хочу использовать только классы и не включать весь проект.
Учитывая следующую структуру:
MainFolder
|
----MainApplication
|
----Backend1
|
----pom.xml
|
----Backend2
|
----pom.xml
|
----DependencyService
|
----someModelsAreInHere
|
----pom.xml
|
----pom.xml
На данный момент соответствующие части pom выглядят следующим образом:
MainFolder Pom
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
</parent>
<modules><module>Backend1</module><module>Backend2</module></modules>
...
<!-- root pom settings -->
<groupId>GROUP</groupId>
<artifactId>MainProject</artifactId>
<version>${revision}</version>
<packaging>pom</packaging>
<name>MainProjectName</name>
...
<!-- Manages Dependencies -->
<dependencyManagement>
<dependencies>
<dependency> <!-- Import the dependency here -->
<groupId>GROUP.MainProject</groupId>
<artifactId>DependencyService</artifactId>
<version>${dependency.service.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
... </project>
Например, Backend1, Backend2 и DependencyService pom.xml выглядят очень похоже.
<!-- Inherit defaults from MainFolder -->
<parent>
<artifactId>MainProject</artifactId>
<groupId>GROUP</groupId>
<version>${revision}</version>
</parent>
<!-- data-processor pom settings -->
<groupId>GROUP</groupId>
<artifactId>backend1</artifactId>
<name>Backend1Name</name>
<packaging>jar</packaging>
<version>${revision}</version>
<!-- Add required dependencies -->
<dependencies>
<!-- include DependencyService here but JUST for the classes, not for compiling! -->
<dependency>
<groupId>GROUP.MainProject</groupId>
<artifactId>dependencyService</artifactId>
</dependency>
</dependencies>
Вопрос
Как я могу включить DependencyService
, чтобы использовать там классы для Backend1
и Backend2
, но НЕ компилировать его при компиляции Backend1 и Backend2? (Потому что он не будет компилироваться без докеров и т. Д. …)
Комментарии:
1. Если вы определяете зависимость, это означает, что она станет частью пути к классу…
2. Ммм, разве нет какого-то решения? Моя единственная цель — использовать эти классы (из DependencyService) в других каталогах. Разве это не возможно каким-то образом? Мне также было бы неплохо оставить это вне зависимости, но я также не знаю, как использовать эти классы
3. Честно говоря, я не понимаю, для какой цели вы хотели бы использовать классы, но не через classpath? Пожалуйста, более подробно объясните, почему / как вы их используете…
4. Конечно, никаких проблем. Это
DependencyService
было дано моим научным руководителем (университет). Эта служба предоставляет api для базы данных mysql и классы для базы данных (например, класс «customer» с переменными, такими как name, age, …). (По крайней мере, я) не могу разрешить запуск этой службы в eclipse, потому что сначала мы создаем контейнер docker, который запускает базу данных а затем еще один, который запускает api. И с моей точки зрения, этот процесс невозможен в eclipse. Это главная причина, почему я хочу использовать только эти классы. Я должен получить доступ к api, получить данные из этих классов и обработать их 🙂5. Дополнение: основная причина этого заключается в том, что если я попытаюсь запустить данную службу, я получу сообщение об ошибке типа «не удалось определить подходящий класс драйвера, если вам нужна встроенная база данных, пожалуйста, укажите itt в пути к классу, …». И я немного погуглил для этой ошибки и затем подумал, что было бы проще просто использовать классы, не добавляя все это в путь к классу. Как я уже сказал, это было дано, поэтому нет реальной необходимости компилировать его каждый раз, я в основном просто хочу получить данные: D