Можно ли построить многомодульную структуру с Maven для PHP? - PullRequest
1 голос
/ 04 мая 2010

Мне нужно создать приложение с использованием Maven для PHP, которое имеет несколько модулей.Сценарий, в котором Maven, кажется, не работает, заключается в следующем: у меня есть общий модуль и клиентский модуль в зависимости от первого.При выполнении «mvn test» на клиентском модуле, который зависит от общего модуля, тест не видит пути к общему модулю.Есть ли в моей сборке поток или это просто невозможно?

Я вложил свои файлы pom.xml.

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.sample</groupId>
    <artifactId>my-app_package</artifactId>
    <packaging>pom</packaging>
    <name>Sample PHP Maven multi module project</name>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>common-module</module>
        <module>client1-module</module>
    </modules>
    <build>
        <plugins>
            <plugin>
                <groupId>org.phpmaven</groupId>
                <artifactId>maven-php-plugin</artifactId>
                <extensions>true</extensions>
                <version>1.0</version>              
                <configuration>
                    <ignoreValidate>true</ignoreValidate>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.phpunit</groupId>
            <artifactId>phpunit5</artifactId>
            <version>3.3.9</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
<reporting>
    <plugins>
        <plugin>
            <groupId>org.phpmaven</groupId>
            <artifactId>maven-php-plugin</artifactId>
            <version>1.0</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
            <version>2.4</version>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>report-only</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>
</project>

common-module/pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.sample</groupId>
    <artifactId>my-app</artifactId>
    <packaging>php</packaging>
    <name>Client1 module</name>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.phpmaven</groupId>
                <artifactId>maven-php-plugin</artifactId>
                <extensions>true</extensions>
                <version>1.0</version>              
                <configuration>
                    <ignoreValidate>true</ignoreValidate>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.sample</groupId>
            <artifactId>common-module</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.phpunit</groupId>
            <artifactId>phpunit5</artifactId>
            <version>3.3.9</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

common-module / pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.sample</groupId>
    <artifactId>common-module</artifactId>
    <packaging>php</packaging>
    <name>Common module</name>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.phpmaven</groupId>
                <artifactId>maven-php-plugin</artifactId>
                <extensions>true</extensions>
                <version>1.0</version>              
                <configuration>
                    <ignoreValidate>true</ignoreValidate>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.phpunit</groupId>
            <artifactId>phpunit5</artifactId>
            <version>3.3.9</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

Ответы [ 2 ]

1 голос
/ 04 мая 2010

Возможно ли построить много модульную структуру с Maven для PHP?

Если строго ответить на этот вопрос, я уверен, что это возможно. Но для этого вы должны запустить maven из родительского проекта и запустить так называемую «сборку из нескольких модулей», что не то, что вы делаете.

Насколько я понимаю, у вас есть что-то вроде этого:

myproject
|-- common
|   `-- pom.xml
|-- client
|   `-- pom.xml
`-- pom.xml      <-- run maven from here for a multi-modules build

Но, честно говоря, некоторые части вашего вопроса неясны. Например, что вы подразумеваете под «тест не видит пути к общему модулю» ? Кроме того, почему вы запускаете mvn site вместо mvn install? Создание сайта - не самый обычный способ запустить сборку. Вы действительно этого хотите?

0 голосов
/ 19 мая 2010

Это работает, вам просто нужно установить модуль зависимостей ДО того, как пытаться построить модуль, который зависит от этого модуля. Или он не найдет его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...