@Xambey

Как правильно импортировать проект в Intellij IDEA?

Добрый день/вечер/утро!
Предисловие
Решил я значит поменять стек с c# на Java и немного удивился от работы местных авто сборщиков пакетов, модульности и так далее (в хорошую сторону). Как мне кажется разобрался с инструментами, понял общую схему работы модулей и пакетов, и что сейчас важно для меня - maven.


Есть два проекта:
simpleexcel.api и simpleexcel.api.tests

Первый - api - restfull сервис на основе RESTEasy (Wildfly 15.0), которая импортируется как библиотека без проблем, все работает. На выходе при сборке пакета - war'ник, который в последствии загружается на WildFly 15.0, все работает без проблем. (Точки входа в программе, как таковой нет - с jar проблема)
5c33492d01b78139698441.png
pom.xml
<?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>
    <artifactId>SimpleExcel.Api</artifactId>
    <groupId>simpleexcel.api</groupId>
    <name>SimpleExcel.Api</name>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </properties>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.jboss.resteasy/jaxrs-api -->
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>jaxrs-api</artifactId>
            <version>3.0.12.Final</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <!--<build>-->
        <!--&lt;!&ndash; Авто деплой в корень в Wildfly, если использовать maven &ndash;&gt;-->
        <!--<finalName>ROOT</finalName>-->
    <!--</build>-->
    <build>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>


Второй - api.tests - тесты для апи. Тут мне нужно импортировать классы из первого проекта, чтобы я мог создавать их экземпляры и тестировать методы внутренних сервисов.

5c33527c7f8a5620068555.png
pom.xml
<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>SimpleExcel.Api.Tests</groupId>
  <artifactId>SimpleExcel.Api.Tests</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>SimpleExcel.Api.Tests</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>



В Intellij IDEA я пытаюсь импортировать модуль simpleexcel.api из simpleexcel.api в simpleexcel.api.tests и при импорте, IDEA находит почему то только main и именно пустой.

Объясните, что я делаю не так? (Добавляю я в зависимостях)
Возможно у вас есть тестовый проект где есть подобная ситуация? Какая должна быть правильная последовательность действий? (Я же могу импортировать модуль без сборки? Т.е просто классы)
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
@yapaha
Разработчик
Вам нужно вo второй pom.xml добавить зависимость на основной проект
<dependency>
  <version>1.0-SNAPSHOT</version>
  <artifactId>SimpleExcel.Api</artifactId>
  <groupId>simpleexcel.api</groupId>
</dependency>


Либо сделатъ это через модули, один модуль с кодом проекта, второи с кодом тестов. И для второго дибавить зависимость на первый
https://d.pr/free/i/j5kNjc
https://www.jetbrains.com/help/idea/creating-and-m...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Рекадро Ярославль
от 100 000 руб.
BostonGene Москва
от 100 000 до 200 000 руб.
Digital Horizon Москва
от 150 000 руб.