Quiero implementar el arranque de primavera y la aplicación angular como un solo archivo de guerra. He intentado hacerlo de la siguiente manera,
Creó un archivo build.gradle en la aplicación angular
plugins { id 'java' id "com.moowork.node" version "1.3.1" } // 2 node { version = '10.15.3' npmVersion = '6.9.0' download = true } // 3 jar.dependsOn 'npm_run_build' // 4 jar { from 'dist/projectName' into 'static' }Se agregó lo siguiente al archivo build.gradle en el proyecto de arranque de primavera,
implementation(project(':angularProject')Se agregó lo siguiente al archivo settings.gradle en el proyecto de arranque de primavera,
include ':angularProject' project(':angularProject').projectDir = new File('../angularProject')Cuando construyo el proyecto de arranque de primavera, pude ver angularProject en la ubicación del proyecto de arranque de primavera, pero quiero que se muestre automáticamente en la carpeta estática en la carpeta de recursos en el proyecto de arranque de primavera. ¿Me estoy perdiendo algo? Cualquier ayuda es muy apreciada.
Editar:
Ahora, al compilar el proyecto, aparece el siguiente error
Could not determine the dependencies of task ':war'. > Could not resolve all task dependencies for configuration ':runtimeClasspath'. > Could not resolve project :frontendProject. Required by: project : > No matching variant of project :frontendProject.was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally but: - Variant 'apiElements' capability backendProjectName:frontendProject:unspecified declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 15 and the consumer needed a runtime of a component compatible with Java 8 - Variant 'runtimeElements' capability backendProjectName:frontendProject:unspecified declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 15 and the consumer needed a component compatible with Java 8Gracias.
Use el complemento Maven frontend-maven-plugin https://github.com/eirslett/frontend-maven-plugin . Consulte https://marco.dev/deploy-java-angular-one
En caso de que use Gralde, use este complemento https://github.com/siouan/frontend-gradle-plugin . Pero frontend-maven-plugin es más estable.
<plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <version>1.10.4</version> <executions> <execution> <id>install node and npm</id> <goals> <goal>install-node-and-npm</goal> </goals> <configuration> <nodeVersion>v14.15.1</nodeVersion> <npmVersion>6.14.8</npmVersion> </configuration> </execution> <execution> <id>npm</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>install --cache</arguments> </configuration> </execution> <execution> <id>npm install</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>install</arguments> </configuration> </execution> <execution> <id>cli build prod</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>run build-prod</arguments> </configuration> <phase>generate-resources</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.1</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <warSourceDirectory>target/classes/static</warSourceDirectory> <webResources> <resource> <directory>src/main/webapp</directory> <includes> <include>WEB-INF/**</include> <include>js/**</include> <include>img/**</include> <include>css/**</include> <include>index.html</include> <include>legal.html</include> <include>privacyPolicy.html</include> </includes> </resource> </webResources> </configuration> </plugin>en frontend-maven-plugin, estamos construyendo angular y en maven-war-plugin, incluimos el archivo de compilación angular en el archivo war o excluimos algunos archivos