Я пытаюсь использовать glassfish-maven-plugin (https://maven-glassfish-plugin.dev.java.net/) с GlassFish v3 (я нахожусь на Mac и использовании Eclipse), и я, может казаться, не заставляю свое веб-приложение развертываться. Я продолжаю сталкиваться с:
Основной пароль требуется, чтобы запускать домен. Никакая консоль, никакой возможный запрос. Необходимо или создать домен с - savemasterpassword=true или предоставить файлу паролей - passwordfile опция.
Вот соответствующая часть моего файла АНГЛИЧАНИНА.
development
phase
development
org.glassfish.maven.plugin
maven-glassfish-plugin
2.2-SNAPSHOT
${glassfish.directory}
${glassfish.user}
${glassfish.directory}/domains/${project.artifactId}/config/domain-passwords
${project.artifactId}
${project.artifactId}
${project.build.directory}/artifacts/${project.artifactId}.war
ocean
http://maven.ocean.net.au/snapshot
false
never
true
always
Вот команда Maven начинать-домена, выполняется.
asadmin - размещают localhost - порт 4848 - пользовательского администратора - passwordfile/var/folders/sk/skcc8ravgsynobbaowwn3u +++ TI/-Tmp-/mgfp5377058868244877698.tmp - interactive=false - echo=true - terse=true начинать-домен - debug=false - domaindir/Applications/GlassFish/v3/glassfish/domains - help=false - upgrade=false - verbose=false mvnrepo
- passwordfile использует временный файл, таким образом, я предполагаю, что это - проблема. По некоторым причинам passFile параметр не работает.
Какие-либо идеи? Я I неправильно с моим предположением?
В Fairly Complete Configuration Example действительно есть ссылка на элемент
, но документация различных целей не упоминает этот элемент и вместо этого ссылается на
(см., например, glassfish: start-domain или glassfish: deploy ). Итак, попробуйте соответствующим образом обновить конфигурацию вашего плагина в вашем профиле:
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.2-SNAPSHOT</version>
<configuration>
<glassfishDirectory>${glassfish.directory}</glassfishDirectory>
<user>${glassfish.user}</user>
<passwordFile>${glassfish.directory}/domains/${project.artifactId}/config/domain-passwords</passwordFile>
<domain>
<name>${project.artifactId}</name>
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/artifacts/${project.artifactId}.war</artifact>
</component>
</components>
</configuration>
</plugin>
В качестве примечания я рекомендую maven-embedded-glassfish-plugin , который позволяет запускать Glassfish в одной JVM, используя его встроенный API. Очень хорошо. См. Использование плагина maven для v3 embedded glassfish для получения дополнительной информации.
ОБНОВЛЕНИЕ: Я провел дополнительное тестирование и не смог ' На самом деле воспроизвести вашу проблему на моей машине (вздох).
Сначала я создал новый домен, выполнив следующую команду (из
):
$ ./asadmin create-domain --savemasterpassword=true maven-glassfish-testcase
Затем я создал новое веб-приложение, используя архетип веб-приложения maven:
$ mvn archetype:create -DgroupId=com.mycompany.app \
-DartifactId=maven-glassfish-testcase \
-DarchetypeArtifactId=maven-archetype-webapp
И обновил pom.xml
только что созданного веб-приложения, как показано ниже:
<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>
<groupId>com.mycompany.app</groupId>
<artifactId>maven-glassfish-testcase</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>maven-glassfish-testcase Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<glassfish.home>/home/pascal/opt/glassfishv3/glassfish</glassfish.home>
<domain.username>admin</domain.username>
</properties>
<pluginRepositories>
<pluginRepository>
<id>ocean</id>
<url>http://maven.ocean.net.au/snapshot</url>
<releases>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>maven-glassfish-testcase</finalName>
<plugins>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.2-SNAPSHOT</version>
<configuration>
<glassfishDirectory>${glassfish.home}</glassfishDirectory>
<user>${domain.username}</user>
<passwordFile>${glassfish.home}/domains/${project.artifactId}/master-password</passwordFile>
<debug>true</debug>
<echo>true</echo>
<domain>
<name>${project.artifactId}</name>
<adminPort>4848</adminPort> <!-- mandatory for mvn glassfish:deploy -->
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
</component>
</components>
</configuration>
</plugin>
</plugins>
</build>
</project>
При этой настройке запуск mvn glassfish: start-domain
дает следующий результат:
$ mvn glassfish:start-domain [INFO] Scanning for projects... [INFO] snapshot org.glassfish.maven.plugin:maven-glassfish-plugin:2.2-SNAPSHOT: checking for updates from ocean [INFO] ------------------------------------------------------------------------ [INFO] Building maven-glassfish-testcase Maven Webapp [INFO] task-segment: [glassfish:start-domain] [INFO] ------------------------------------------------------------------------ [INFO] [glassfish:start-domain {execution: default-cli}] [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/master-password --interactive=false --echo=true --terse=true start-domain --debug=true --domaindir /home/pascal/opt/glassfishv3/glassfish/domains --help=false --upgrade=false --verbose=false maven-glassfish-testcase [INFO] Started domain: maven-glassfish-testcase [INFO] Domain location: /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase [INFO] Log file: /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/logs/server.log [INFO] Admin port for the domain: 4848 [INFO] Debug port for the domain: 9009 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 27 seconds [INFO] Finished at: Mon Dec 21 20:16:17 CET 2009 [INFO] Final Memory: 4M/53M [INFO] ------------------------------------------------------------------------
Как вы можете видеть , параметр - файл пароля
передается правильно с использованием файла, указанного в POM. Другими словами, все работает, как ожидалось. Может быть, попробуйте с жестко заданным путем к файлу паролей отладить этот параметр, он должен работать!
$ mvn archetype:create -DgroupId=com.mycompany.app \
-DartifactId=maven-glassfish-testcase \
-DarchetypeArtifactId=maven-archetype-webapp
И обновил pom.xml
только что созданного веб-приложения, как показано ниже:
<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>
<groupId>com.mycompany.app</groupId>
<artifactId>maven-glassfish-testcase</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>maven-glassfish-testcase Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<glassfish.home>/home/pascal/opt/glassfishv3/glassfish</glassfish.home>
<domain.username>admin</domain.username>
</properties>
<pluginRepositories>
<pluginRepository>
<id>ocean</id>
<url>http://maven.ocean.net.au/snapshot</url>
<releases>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>maven-glassfish-testcase</finalName>
<plugins>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.2-SNAPSHOT</version>
<configuration>
<glassfishDirectory>${glassfish.home}</glassfishDirectory>
<user>${domain.username}</user>
<passwordFile>${glassfish.home}/domains/${project.artifactId}/master-password</passwordFile>
<debug>true</debug>
<echo>true</echo>
<domain>
<name>${project.artifactId}</name>
<adminPort>4848</adminPort> <!-- mandatory for mvn glassfish:deploy -->
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
</component>
</components>
</configuration>
</plugin>
</plugins>
</build>
</project>
С этой настройкой запустил mvn glassfish: start-domain
дает следующий результат:
$ mvn glassfish:start-domain [INFO] Scanning for projects... [INFO] snapshot org.glassfish.maven.plugin:maven-glassfish-plugin:2.2-SNAPSHOT: checking for updates from ocean [INFO] ------------------------------------------------------------------------ [INFO] Building maven-glassfish-testcase Maven Webapp [INFO] task-segment: [glassfish:start-domain] [INFO] ------------------------------------------------------------------------ [INFO] [glassfish:start-domain {execution: default-cli}] [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/master-password --interactive=false --echo=true --terse=true start-domain --debug=true --domaindir /home/pascal/opt/glassfishv3/glassfish/domains --help=false --upgrade=false --verbose=false maven-glassfish-testcase [INFO] Started domain: maven-glassfish-testcase [INFO] Domain location: /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase [INFO] Log file: /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/logs/server.log [INFO] Admin port for the domain: 4848 [INFO] Debug port for the domain: 9009 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 27 seconds [INFO] Finished at: Mon Dec 21 20:16:17 CET 2009 [INFO] Final Memory: 4M/53M [INFO] ------------------------------------------------------------------------
Как видите, параметр - passwordfile
передается правильно с использованием файла, указанного в POM. Другими словами, все работает, как ожидалось. Может быть, попробуйте с жестко заданным путем к файлу паролей отладить этот параметр, он должен работать!
$ mvn archetype:create -DgroupId=com.mycompany.app \
-DartifactId=maven-glassfish-testcase \
-DarchetypeArtifactId=maven-archetype-webapp
И обновил pom.xml
только что созданного веб-приложения, как показано ниже:
<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>
<groupId>com.mycompany.app</groupId>
<artifactId>maven-glassfish-testcase</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>maven-glassfish-testcase Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<glassfish.home>/home/pascal/opt/glassfishv3/glassfish</glassfish.home>
<domain.username>admin</domain.username>
</properties>
<pluginRepositories>
<pluginRepository>
<id>ocean</id>
<url>http://maven.ocean.net.au/snapshot</url>
<releases>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>maven-glassfish-testcase</finalName>
<plugins>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.2-SNAPSHOT</version>
<configuration>
<glassfishDirectory>${glassfish.home}</glassfishDirectory>
<user>${domain.username}</user>
<passwordFile>${glassfish.home}/domains/${project.artifactId}/master-password</passwordFile>
<debug>true</debug>
<echo>true</echo>
<domain>
<name>${project.artifactId}</name>
<adminPort>4848</adminPort> <!-- mandatory for mvn glassfish:deploy -->
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
</component>
</components>
</configuration>
</plugin>
</plugins>
</build>
</project>
С этой настройкой запустил mvn glassfish: start-domain
дает следующий результат:
$ mvn glassfish:start-domain [INFO] Scanning for projects... [INFO] snapshot org.glassfish.maven.plugin:maven-glassfish-plugin:2.2-SNAPSHOT: checking for updates from ocean [INFO] ------------------------------------------------------------------------ [INFO] Building maven-glassfish-testcase Maven Webapp [INFO] task-segment: [glassfish:start-domain] [INFO] ------------------------------------------------------------------------ [INFO] [glassfish:start-domain {execution: default-cli}] [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/master-password --interactive=false --echo=true --terse=true start-domain --debug=true --domaindir /home/pascal/opt/glassfishv3/glassfish/domains --help=false --upgrade=false --verbose=false maven-glassfish-testcase [INFO] Started domain: maven-glassfish-testcase [INFO] Domain location: /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase [INFO] Log file: /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/logs/server.log [INFO] Admin port for the domain: 4848 [INFO] Debug port for the domain: 9009 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 27 seconds [INFO] Finished at: Mon Dec 21 20:16:17 CET 2009 [INFO] Final Memory: 4M/53M [INFO] ------------------------------------------------------------------------
Как видите, параметр - passwordfile
передается правильно с использованием файла, указанного в POM. Другими словами, все работает, как ожидалось. Может быть, попробуйте с жестко заданным путем к файлу паролей отладить этот параметр, он должен работать!
- файл пароля
передается правильно с использованием файла, указанного в POM. Другими словами, все работает, как ожидалось. Может быть, попробуйте с жестко заданным путем к файлу паролей отладить этот параметр, он должен работать! параметр - файл пароля
передается правильно с использованием файла, указанного в POM. Другими словами, все работает, как ожидалось. Может быть, попробуйте с жестко заданным путем к файлу паролей отладить этот параметр, он должен работать! Мне потребовалось некоторое время, чтобы понять, что я случайно оставил свойство «adminPassword» в конфигурации Maven-Glassfish-Plugin (так что у меня были заданы и adminPassword, и passwordFile). Плагин по-прежнему использовал временный файл паролей вместо моего, что привело к указанной выше ошибке.
На случай, если кто-то еще такой тупой, как я;)