Как удалить / отменить развертывание ear-файла из weblogic через maven (если он существует) или обновить ear-файл? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть сервер weblogic (12.2.1.3.0), и я хочу развернуть ear-файл через maven. Это отлично работает. Но когда я хочу повторно развернуть его, выдается ошибка. Причина в том, что контекст-корень одинаков. Поэтому я должен сначала удалить файл ear, а затем повторно развернуть его или обновить файл ear. Вопрос в том, как это сделать. Я запустил Maven через Eclipse с «чистой установкой».

pom родительского проекта:

<modules>
    <module>Aras-ear</module>
    <module>Aras-web</module>
    <module>Aras-ejb</module>
</modules>

<profiles>
    <!-- Profil für ARAS (normal) -->
    <profile>
        <id>aras</id>
        <properties>
            <datasource.name>ArasDataSource</datasource.name>
            <environment.name>ARAS</environment.name>
            <rootcontext.name>aras</rootcontext.name>
            <earfile.name>Aras-ear</earfile.name>
        </properties>
    </profile>
    <!-- Profil für ARAS (Nightly Build) -->
    <profile>
        <id>aras_nb</id>
        <properties>
            <datasource.name>ArasNbDataSource</datasource.name>
            <environment.name>ARAS-NB</environment.name>
            <rootcontext.name>aras_nb</rootcontext.name>
            <earfile.name>Aras_nb-ear</earfile.name>
        </properties>
    </profile>
</profiles>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
        </plugin>
    </plugins>
    <resources>
        <!-- Lässt das Setzen der Variablen in den Resources zu -->
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

POM уха-проекта:

<parent>
    <groupId>itzbund.zoll</groupId>
    <artifactId>Aras</artifactId>
    <version>1.0</version>
</parent>
<artifactId>Aras-ear</artifactId>
<packaging>ear</packaging>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <version>6</version>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                 <!-- finalName ist z.B. "aras-ear-1.0" oder "aras_nb-ear-1.0" (gibt Namen des ear-Files an) -->
                <finalName>${earfile.name}-${project.version}</finalName>
                <modules> 
                    <webModule>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>Aras-web</artifactId>
                        <!-- rootcontext.name = "aras" oder "aras_nb" (gibt Aufruf-URL vor) -->
                        <contextRoot>/${rootcontext.name}</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
        <plugin>
            <groupId>com.oracle.weblogic</groupId>
            <artifactId>weblogic-maven-plugin</artifactId>
            <version>12.2.1-3-0</version>
            <configuration>
                <adminurl>t3://localhost:7001</adminurl>
                <user>weblogic</user>
                <password>welcome1</password>
                <upload>true</upload>
                <action>deploy</action>
                <remote>false</remote>
                <verbose>true</verbose>
                <!-- source ist entsprechendes Ear-File (je nach gewähltem Profil) im Target-Verzeichnis des ear-Projektes -->
                <source>${project.build.directory}/${earfile.name}-${project.version}.ear</source>
                <name>${earfile.name}-${project.version}</name>
            </configuration>
            <executions>
                <!-- Wenn ear-File nicht auf WLS vorhanden, wird execution "clean" Fehler werfen -->
                <!-- <execution>
                    <id>clean</id>
                    <phase>clean</phase>
                    <goals>
                        <goal>undeploy</goal>
                    </goals>
                </execution> -->
                <execution>
                    <id>install</id>
                    <phase>install</phase>
                    <goals>
                        <goal>deploy</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Я попробовал код

<execution>
    <id>clean</id>
    <phase>clean</phase>
    <goals>
        <goal>undeploy</goal>
    </goals>
</execution>

но это не сработало. Код ошибки был:

[ОШИБКА] Не удалось выполнить цель com.oracle.weblogic: weblogic-maven-plugin: 12.2.1-3-0: отменить (очистить) проект Aras-ear: weblogic.management.ManagementException: [Deployer: 149163 ] Блокировка редактирования домена принадлежит другому сеансу в неисключительном режиме. Эта операция развертывания требует монопольного доступа к блокировке редактирования и поэтому не может продолжаться. Если в Консоли администрирования используется «Автоматическая блокировка Aquire и активация изменений», срок действия блокировки скоро истечет, поэтому повторите эту операцию.

...