PHP için Maven ile çoklu modül yapı inşa etmek mümkün mü?

2 Cevap php

I have to build an application using Maven for PHP that has multiple modules. The scenario in which the maven seems to not work is this: I have a common module and a client module depending on the first one. When doing "mvn test" on the client module which depends on the common module, the test fails to see the paths to the common module. Is there a flow in my build or this is just not possible?

Benim pom.xml ekli dosyalar.

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 Cevap

Çalışır, sadece o modülüne bağlıdır bir modül oluşturmak için çalışıyoruz ÖNCE bağımlılık modülünü yüklemeniz gerekir. Yoksa onu bulamazsınız.

PHP için Maven ile çoklu modül yapı inşa etmek mümkün mü?

Kesinlikle bu soruyu cevaplamak için, bunun mümkün olduğuna eminim. Ama bunun için, size ana projeden Maven başlamak ve ne yaptığınızı değil, bir sözde "multi-modüller yapı" çalışması gerekir.

Benim anlayış böyle bir şey olması:

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

Ama dürüst olmak gerekirse, sorunuzun bazı kısımları belirsiz. Örneğin, "the test fails to see the paths to the common module" ile ne demek istiyorsun? Ayrıca, neden yerine Say'ın mvn site çalıştırabilirim mvn install? Siteyi üreten bir yapı çalıştırmak için en olağan yolu değildir. Bu ne istediğinizi gerçekten mi?