@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 и именно пустой.

Объясните, что я делаю не так? (Добавляю я в зависимостях)
Возможно у вас есть тестовый проект где есть подобная ситуация? Какая должна быть правильная последовательность действий? (Я же могу импортировать модуль без сборки? Т.е просто классы)
  • Вопрос задан
  • 258 просмотров
Решения вопроса 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...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
23 апр. 2019, в 12:58
5000 руб./за проект
23 апр. 2019, в 12:22
150 руб./за проект
23 апр. 2019, в 12:04
1000 руб./в час