xuxiaowei-com-cn opened a new issue, #8206:
URL: https://github.com/apache/incubator-seata/issues/8206

   ### Check Ahead
   
   - [x] I have searched the [issues](https://github.com/seata/seata/issues) of 
this repository and believe that this is not a duplicate.
   
   - [x] I am willing to try to fix this bug myself.
   
   
   ### Ⅰ. Issue Description
   
   The `seata-console` sources jar contains the Node runtime directory 
`src/main/resources/static/console-fe/node` installed by 
`frontend-maven-plugin` during the frontend build. This causes the source 
artifact to be abnormally large.
   
   <img width="2092" height="1230" alt="Image" 
src="https://github.com/user-attachments/assets/b1877073-a314-4b64-8e8e-051ba1560450";
 />
   
   ### Ⅱ. Describe what happened
   
   
   After building the `console` module, the generated 
`seata-console-2.8.0-SNAPSHOT-sources.jar` includes 
`static/console-fe/node/**`. That directory contains the Node executable and 
runtime files installed by `frontend-maven-plugin` during the 
`generate-resources` phase; it is not console frontend source code.
   
   Local build observation:
   
   - Before the change: 
`console/target/seata-console-2.8.0-SNAPSHOT-sources.jar` is about **32M**.
      
       <img width="1442" height="376" alt="Image" 
src="https://github.com/user-attachments/assets/f0bc70a4-4e22-445d-b2ea-c673f48a865b";
 />
   
   - After the change: 
`console/target/seata-console-2.8.0-SNAPSHOT-sources.jar` is about **4.6M**.
   
       <img width="1460" height="354" alt="Image" 
src="https://github.com/user-attachments/assets/7b37afea-ba3e-4adf-9969-94127f97cb8a";
 />
   
   The change corrects the resource exclusion to exclude 
`static/console-fe/node/**`, preventing the frontend build-time Node runtime 
from being packaged into the sources jar.
   
   
   ### Ⅲ. Describe what you expected to happen
   
   
   The sources jar should contain only the console module's Java sources and 
any frontend source/resources that need to be retained. It should not contain 
the Node runtime downloaded or installed by `frontend-maven-plugin`. 
`static/console-fe/node/**` should be excluded, while `node_modules` continues 
to be excluded by the existing `**/node_modules/**` rule.
   
   
   ### Ⅳ. How to reproduce it (as minimally and precisely as possible)
   
   
   1. Run the following command from the repository root:
   
      ```bash
      mvn -pl console package -DskipTests -am
      ```
   
   2. Check the generated sources jar size:
   
      ```bash
      ll console/target/seata-console-2.8.0-SNAPSHOT-sources.jar
      ```
   
       <img width="1442" height="376" alt="Image" 
src="https://github.com/user-attachments/assets/e8b722f1-4531-49e7-8959-1b8dc3d2031c";
 />
   
   3. Check whether the sources jar contains the Node runtime directory:
   
      ```bash
      jar tf console/target/seata-console-2.8.0-SNAPSHOT-sources.jar | grep 
'^static/console-fe/node/'
      ```
   
      Before the change, many `static/console-fe/node/**` files are listed; 
after the change, the command should produce no output.
   
       <img width="1678" height="487" alt="Image" 
src="https://github.com/user-attachments/assets/72bcb848-855c-4e95-afa8-cf9382071fc9";
 />
   
   
   ### Ⅴ. Anything else we need to know?
   
   
   The `install-node-and-npm` execution of `frontend-maven-plugin` installs 
Node into `src/main/resources/static/console-fe/node`. That directory is only 
used by the subsequent `npm build` and should not be included in the final 
sources jar.
   
   `node_modules` is already covered by the `**/node_modules/**` exclusion. 
This change replaces `static/console-fe` with `static/console-fe/node/**` so 
that only the Node runtime directory is excluded without affecting other 
`console-fe` frontend files.
   
   
   ### Ⅵ. Environment
   
   - JDK version: `17`
   - Seata client/server version: `2.8.0-SNAPSHOT`
   - Database version: N/A
   - OS: macOS / Linux
   - Others: During the Maven `package` phase, the `maven-source-plugin` 
configured in the root POM generates the sources jar.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to