ਅਚਾਨਕ ਮੇਵੇਨ ਬਿਲਡ ਫੇਲ੍ਹ ਹੋ ਗਈ
Imagine starting your day with a smooth development workflow, only to be hit by a sudden and mysterious Maven build error. ਕੱਲ੍ਹ, ਹਰ ਚੀਜ਼ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੀ ਸੀ, ਪਰ ਅੱਜ, ਬਿਲਡ ਗੁੰਮ ਜਾਣ ਵਾਲੀ ਨਿਰਭਰਤਾ ਦੇ ਕਾਰਨ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ. ਇਹ ਬਿਲਕੁਲ ਉਹੀ ਹੈ ਜੋ ਨਾਲ ਹੋਇਆ NET.MIMIMINIDEV: ਜੇਸਨ-ਸਮਾਰਟ ਲਾਇਬ੍ਰੇਰੀ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਹੈਰਾਨ ਕਰ ਦਿੱਤਾ. 🤯
ਇਸ ਮੁੱਦੇ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ ਜਾਵਾ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਉੱਠਦਾ ਹੈ ਮੌਵਨ ਨਿਰਭਰਤਾ ਪ੍ਰਬੰਧਨ ਲਈ. ਗਲਤੀ ਸੁਨੇਹਾ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕੋਈ ਵੀ ਵਰਜਨ ਨਹੀਂ ਕਰਦਾ ਜੇਐਸਓਨ-ਸਮਾਰਟ ਨਿਰਧਾਰਤ ਸੀਮਾ ਦੇ ਅੰਦਰ ਉਪਲਬਧ ਹਨ. ਇਹ ਨਿਰਾਸ਼ਾਜਨਕ ਹੋ ਸਕਦਾ ਹੈ, ਖ਼ਾਸਕਰ ਜਦੋਂ ਨਿਰਭਰਤਾ ਪਹਿਲਾਂ ਸਹੀ ਤਰ੍ਹਾਂ ਹੱਲ ਕਰ ਰਹੀ ਸੀ. ਸਥਿਤੀ ਨੇ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਅਸਵੀਕਾਰਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਸਪੱਸ਼ਟ ਸੇਧ ਤੋਂ ਬਿਨਾਂ ਬਦਲਿਆ.
ਬਹੁਤ ਸਾਰੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਅਜਿਹੇ ਮੁੱਦੇ ਰਿਮੋਟ ਰਿਪੋਜ਼ਟਰੀਆਂ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਦੇ ਕਾਰਨ, ਨਿਰਭਰਤਾ ਦੇ ਰੁੱਖਾਂ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਜਾਂ ਮੁੜ-ਨਿਯੰਤਰਿਤ ਕੀਤੇ ਗਏ ਕਲਾਕ੍ਰਿਤੀਆਂ ਵਿੱਚ ਅਪਡੇਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ. ਡਿਵੈਲਪਰ ਲਾਇਬ੍ਰੇਰੀਆਂ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹਨ ਅਜ਼ੂਰ-ਪਛਾਣ ਡਾਇਲਮਮਾ - ਜਾਂ ਤਾਂ ਨਿਰਭਰਤਾ ਨੂੰ ਅਪਗ੍ਰੇਡ ਕਰਨਾ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਤੋੜਨਾ ਜਾਂ ਪੁਰਾਣੇ ਸੰਸਕਰਣ ਨਾਲ ਰਹਿਣਾ ਅਤੇ ਬਿਲਟ ਟੁੱਟੇ ਰੱਖਦਿਆਂ ਰਹਿਣਾ.
ਜੇ ਤੁਸੀਂ ਇਸ ਮਾਸਾ ਅਸ਼ੁੱਧੀ ਨਾਲ ਨਜਿੱਠ ਰਹੇ ਹੋ, ਘਬਰਾਓ ਨਾ! ਇਸ ਗਾਈਡ ਵਿੱਚ, ਅਸੀਂ ਇਸ ਮੁੱਦੇ ਨੂੰ ਸੁਲਝਾਉਣ ਲਈ ਮੁੱਦੇ ਅਤੇ ਵਿਵਹਾਰਕ ਕਦਮਾਂ ਦੇ ਸੰਭਾਵਤ ਕਾਰਨਾਂ ਦੀ ਪੜਚੋਲ ਕਰਾਂਗੇ. ਨਿਰਭਰਤਾ ਦਰੱਖਤਾਂ ਨੂੰ ਹੱਥੀਂ ਪਛਾੜ ਦੇ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਤੋਂ, ਤੁਸੀਂ ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ nows ੰਗ ਨਾਲ ਨਜਿੱਠਣ ਤੋਂ ਕਿਵੇਂ ਨਜਿੱਠੋਗੇ. ਚਲੋ ਡਾਈਵ ਕਰਾਓ ਅਤੇ ਮਿਲ ਕੇ ਇਸ ਨੂੰ ਠੀਕ ਕਰੀਏ! 🔧
ਕਮਾਂਡ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਣ |
---|---|
mvn dependency:tree | ਇੱਕ ਮਵੇਨ ਪ੍ਰਾਜੈਕਟ ਵਿੱਚ ਨਿਰਭਰਤਾ ਦਾ ਲੜੀਵਾਰ ਬਣਤਰ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ. ਅਪਵਾਦ ਅਤੇ ਅਚਾਨਕ ਪਰਿਵਰਤਨਸ਼ੀਲ ਨਿਰਭਰਤਾ ਨੂੰ ਪਛਾਣਨ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ. |
mvn clean install -U | ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਨਵੀਨਤਮ ਸੰਸਕਰਣਾਂ ਨੂੰ ਡਾ ing ਨਲੋਡ ਕਰਕੇ, ਸਥਾਨਕ ਕੈਚੇ ਨੂੰ ਘਟਾਉਣ ਲਈ ਨਿਰਭਰਤਾ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦੀਆਂ ਹਨ. |
mvn help:evaluate -Dexpression=project.dependencies | ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਮੌਜੂਦਾ ਨਿਰਭਰਤਾ ਸੰਸਕਰਣਾਂ ਦਾ ਮੁਲਾਂਕਣ ਅਤੇ ਪ੍ਰਿੰਟ ਕਰਦੇ ਹਨ, ਕਿਰਿਆਸ਼ੀਲ ਨਿਰਭਰਤਾ ਦੀ ਤਸਦੀਕ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ. |
rm -rf ~/.m2/repository/net/minidev/json-smart | ਇਸ ਨੂੰ ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਡਾ download ਨਲੋਡ ਕਰਨ ਲਈ ਮਜ਼ਦੂਰ-ਸਮਾਰਟ ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਕੈਸ਼ ਕੀਤਾ ਸੰਸਕਰਣ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ. |
mvn dependency:purge-local-repository | ਪ੍ਰੋਜੈਕਟ ਲਈ ਸਾਰੇ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਕੈਸ਼ ਕੀਤੀ ਨਿਰਭਰਤਾ ਨੂੰ ਦੂਰ ਕਰਦਾ ਹੈ, ਤਾਂ ਸਾਰੀ ਲੋੜੀਂਦੀ ਨਿਰਭਰਤਾ ਦੀ ਤਾਜ਼ਾ ਡਾਉਨਲੋਡ ਯਕੀਨੀ ਬਣਾਓ. |
<exclusion></exclusion> | ਇੱਕ ਖਾਸ ਤਬਦੀਲੀ ਵਾਲੀ ਨਿਰਭਰਤਾ ਨੂੰ ਬਾਹਰ ਕੱ to ਣ ਲਈ ਇੱਕ ਖਾਸ ਨਿਰਭਰਤਾ ਦੀ ਘੋਸ਼ਣਾ ਕਰਨ ਲਈ ਇੱਕ ਮੈਕੈਂਟੀ ਨਿਰਭਰਤਾ ਘੋਸ਼ਣਾ ਦੇ ਅੰਦਰ ਵਰਤੀ ਜਾਂਦੀ ਹੈ ਜੋ ਕਿ ਵਿਵਾਦਾਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦੀ ਹੈ. |
<dependencyManagement></dependencyManagement> | ਨਿਰਭਰਤਾ ਲਈ ਵਿਸ਼ੇਸ਼ ਸੰਸਕਰਣਾਂ ਨੂੰ ਪ੍ਰਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਅਤੇ ਲਾਗੂ ਕਰਨ ਲਈ ਵਿਸ਼ੇਸ਼ ਸੰਸਕਰਣਾਂ ਨੂੰ ਇੱਕ ਮਾ als ਲ ਪ੍ਰਾਜੈਕਟ ਵਿੱਚ ਕਰਦਾ ਹੈ. |
import net.minidev.json.parser.JSONParser; | ਜੇਐਸਓਨ-ਸਮਾਰਟ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਜੇਸਨਪ੍ਰੈਸਰ ਕਲਾਸ ਦੀ ਆਯਾਤ ਕਰੋ, ਜੋ ਜਾਵਾ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਜੇਸਨ ਪਾਰਸ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ. |
assertNotNull(parser, "json-smart should be available in classpath"); | ਜੇਨਸ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਜ਼ੋਰ ਦੇ ਦਾਅਵੇ ਕਿ ਜੇਐਸਓਐਨ-ਸਮਾਰਟ ਲਾਇਬ੍ਰੇਰੀ ਕਲਾਸਪਾਥ ਵਿੱਚ ਅਤੇ ਵਰਤੋਂ ਲਈ ਉਪਲਬਧ ਹੈ. |
mvn dependency:resolve | ਪ੍ਰੋਜੈਕਟ ਵਿਚ ਨਿਰਭਰਤਾ ਦੇ ਹੱਲ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ ਅਤੇ ਬਿਲਟ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਲਾਗੂ ਕੀਤੇ ਬਿਨਾਂ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਨਿਰਭਰੀਆਂ ਦੇ ਸੰਸਕਰਣਾਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ. |
ਮੌਵੇ ਵਿੱਚ ਨਿਰਭਰ ਨਿਰਭਰਤਾ ਰੈਜ਼ੋਲੂਸ਼ਨ
ਉੱਪਰ ਬਣਾਏ ਗਏ ਸਕ੍ਰਿਪਟਾਂ ਨਿਰਭਰਤਾ ਦੇ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ ਮੌਵਨ, ਖਾਸ ਤੌਰ 'ਤੇ ਇਸ ਨਾਲ ਸਬੰਧਤ ਗਲਤੀ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰਨਾ ਜੇਐਸਓਨ-ਸਮਾਰਟ ਲਾਇਬ੍ਰੇਰੀ. ਪਹਿਲੇ ਹੱਲ ਵਿੱਚ ਪ੍ਰੋਜੈਕਟ ਦੇ ਪੋਮ ਫਾਈਲ ਵਿੱਚ ਜੇਐਸਐਨ-ਸਮਾਰਟ ਦੇ ਸਥਿਰ ਸੰਸਕਰਣ ਨੂੰ ਹੱਥੀਂ ਸ਼ਾਮਲ ਕਰਨਾ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ. ਇਹ ਸਪੱਸ਼ਟ ਤੌਰ ਤੇ ਇੱਕ ਵਰਜਨ ਨੰਬਰ ਨੂੰ ਪ੍ਰਭਾਸ਼ਿਤ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਨਾ ਕਿ ਇੱਕ ਅਣਉਪਲਬਧ ਸੰਸਕਰਣ ਨੂੰ ਹੱਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਹੀਂ ਕਰਦਾ. ਇਸ ਤੋਂ ਇਲਾਵਾ, ਅਣਚਾਹੇ ਪਰਿਵਰਤਨਸ਼ੀਲ ਨਿਰਭਰਤਾ ਨੂੰ ਪ੍ਰਾਜੈਕਟ ਨੂੰ ਦਖਲ ਦੇਣ ਤੋਂ ਰੋਕਣ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ. ਇਹ ਵਿਧੀ ਖਾਸ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੈ ਜਦੋਂ ਵਿਵਾਦਪੂਰਨ ਸੰਸਕਰਣ ਕਿਸੇ ਹੋਰ ਲਾਇਬ੍ਰੇਰੀ ਦੁਆਰਾ ਖਿੱਚਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ Outhth2-oidc-sdk, ਜੋ ਸਾਡੇ ਕੇਸ ਵਿੱਚ ਵੇਖੀ ਗਈ ਸੀ.
ਦੂਜੀ ਪਹੁੰਚ ਇੱਕ ਮਵੇਨ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਨਿਰਭਰਤਾ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਅਤੇ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ ਦੂਜੀ ਪਹੁੰਚ ਨੂੰ ਲਾਭ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ. ਐਮਵੀਐਨ ਨਿਰਭਰਤਾ: ਰੁੱਖ ਕਮਾਂਡ ਦੀ ਇੱਕ ਦਰਸ਼ਨੀ ਪ੍ਰਤੀਨਿਧਤਾ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ ਕਿ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਵਿਵਾਦਪੂਰਨ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਨ ਵਾਲੀ ਸਹਾਇਤਾ ਪ੍ਰਾਪਤ ਹੁੰਦੀ ਹੈ. ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਐਮਵੀਐਨ ਕਲੀਨ -ਯੂ, ਮੈਕਵੀ ਨੂੰ ਸਾਰੀ ਨਿਰਭਰਤਾ ਨੂੰ ਤਾਜ਼ਾ ਕਰਨ, ਸਥਾਨਕ ਕੈਚੇ ਨੂੰ ਘਟਾਉਣ ਲਈ ਨਿਰਦੇਸ਼ ਦਿੱਤਾ ਗਿਆ ਹੈ. ਇਸ ਦੀ ਅਸਲ ਉਦਾਹਰਣ ਉਦੋਂ ਆਈ ਜਦੋਂ ਇੱਕ ਡਿਵੈਲਪਰ ਨੇ ਪਾਇਆ ਕਿ ਇੱਕ ਨਿਰਭਰਤਾ ਨੂੰ ਕੇਂਦਰੀ ਰਿਪੋਜ਼ਟਰੀ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਸੀ, ਜਿਸ ਵਿੱਚ ਉਹਨਾਂ ਨੂੰ ਨਵਾਂ ਸੰਸਕਰਣ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਅਪਡੇਟ ਕਰਨ ਲਈ ਇੱਕ ਅਪਡੇਟ ਕਰਨ ਲਈ. ਇਸ ਤੋਂ ਇਲਾਵਾ, ਨਾਲ ਹੱਥੀਂ ਕੈਸ਼ ਕੀਤੇ ਸੰਸਕਰਣਾਂ ਨੂੰ ਹਟਾਉਣਾ rm -rf ~ / .m2 / ਰਿਪੋਜ਼ਟਰੀ / ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਖਰਾਬ ਜਾਂ ਪੁਰਾਣੀ ਮੈਟਾਡੇਟਾ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਵਿਚ ਦਖਲ ਨਹੀਂ ਦਿੰਦਾ.
ਤੀਜਾ ਤਰੀਕਾ ਪੇਸ਼ ਕਰਦਾ ਹੈ ਨਿਰਭਰਤਾ ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਮਲਟੀਪਲ ਮੋਡੀ ules ਲ ਵਿੱਚ ਰੁਪਾਂਤਰਾਂ ਨੂੰ ਨਿਯੰਤਰਣ ਕਰਨ ਲਈ POM ਫਾਈਲ ਵਿੱਚ ਭਾਗ. ਇਹ ਇਕੋ ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਵਿਵਾਦਪੂਰਨ ਸੰਸਕਰਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਰੋਕਣ ਦੀ ਬਜਾਏ ਇਕਸਾਰਤਾ ਨੂੰ ਰੋਕਦਾ ਹੈ. ਇਹ ਵੱਡੇ ਪੱਧਰ 'ਤੇ ਵਿਆਪਕ ਐਂਟਰਪ੍ਰਾਈਜ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਖਾਸ ਤੌਰ' ਤੇ ਮਹੱਤਵਪੂਰਣ ਹੈ, ਜਿੱਥੇ ਕਈ ਟੀਮਾਂ ਵੱਖਰੇ ਮੈਡਿ .ਲਾਂ 'ਤੇ ਕੰਮ ਕਰ ਸਕਦੀਆਂ ਹਨ. ਸੰਸਕਰਣ ਨਿਯੰਤਰਣ ਦੇ ਬਿਨਾਂ, ਮੁੱਦੇ ਉਭਰ ਸਕਦੇ ਹਨ ਜਿੱਥੇ ਇੱਕ ਮੈਡਿ module ਲ ਠੀਕ ਕਰਦਾ ਹੈ ਪਰ ਨਿਰਭਰਤਾ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ. ਇਸ ਤਕਨੀਕ ਵਿਚ ਵਿਆਪਕ ਤੌਰ ਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਬਸੰਤ ਬੂਟ ਅਰਜ਼ੀਆਂ, ਜਿੱਥੇ ਨਿਰਭਰਤਾ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਕੁਸ਼ਲਤਾ ਨਾਲ ਸਥਿਰਤਾ ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ.
ਅੰਤ ਵਿੱਚ, ਇੱਕ ਯੂਨਿਟ ਟੈਸਟ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਪੇਸ਼ ਕੀਤਾ ਗਿਆ ਹੈ ਜੇਐਸਓਨ-ਸਮਾਰਟ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਸਹੀ ਤਰ੍ਹਾਂ ਲੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਕਾਰਜਸ਼ੀਲ ਹੁੰਦਾ ਹੈ. ਜੇਸਨ ਪਾਰਸਰ ਨੂੰ ਅਪਣਾਉਣ ਲਈ ਜੂਨੀਟ ਟੈਸਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਅਸੀਂ ਜਲਦੀ ਤਸਦੀਕ ਕਰ ਸਕਦੇ ਹਾਂ ਕਿ ਨਿਰਭਰਤਾ ਰਨਟਾਈਮ ਤੇ ਉਪਲਬਧ ਹੈ. ਇਸ ਕਿਸਮ ਦਾ ਕਿਰਿਆਸ਼ੀਲ ਟੈਸਟਿੰਗ ਉਤਪਾਦਨ ਵਾਤਾਵਰਣ ਵਿੱਚ ਅਚਾਨਕ ਅਸਫਲਤਾਵਾਂ ਨੂੰ ਰੋਕ ਸਕਦੀ ਹੈ. ਉਦਾਹਰਣ ਦੇ ਲਈ, ਇੱਕ ਈ-ਕਾਮਰਸ ਪਲੇਟਫਾਰਮ ਲਈ ਏਪੀਆਈ ਏਕੀਕਰਣ ਤੇ ਕੰਮ ਕਰਨ ਵਾਲੇ ਇੱਕ ਮੁੱਤ ਨੂੰ ਇੱਕ ਮੁੱਦੇ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਇੱਕ ਮੁੱਦੇ ਦਾ ਸਾਹਮਣਾ ਕਰ ਰਿਹਾ ਸੀ ਜਿੱਥੇ ਇੱਕ ਜੇਸਨ ਪਾਰਸਿੰਗ ਗਲਤੀ ਦੇ ਚੈਕਆਉਟ ਅਸਫਲ ਹੋਣ ਦੇ ਕਾਰਨ. ਨਿਰਭਰਤਾ ਪ੍ਰਮਾਣਿਕਤਾ ਟੈਸਟਾਂ ਨੂੰ ਜੋੜ ਕੇ, ਅਜਿਹੇ ਮੁੱਦਿਆਂ ਨੂੰ ਜਲਦੀ ਖੋਜਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਨਿਰਵਿਘਨ ਤਾਇਨਾਤੀ ਚੱਕਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ. 🚀
ਮੌਵੈਨ ਨਿਰਭਰਤਾ ਦੇ ਰੈਜ਼ੋਲੂਸ਼ਨ ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣਾ
ਜਾਵਾ - ਬੈਕਐਂਡੀ ਪ੍ਰਬੰਧਨ ਦਾ ਇਸਤੇਮਾਲ ਕਰਕੇ ਬੈਕਐਂਡ ਹੱਲ
// Solution 1: Force a Specific Version of json-smart
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.4.8</version> <!-- Force a stable version -->
</dependency>
// Use dependency exclusion to avoid conflicts
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>oauth2-oidc-sdk</artifactId>
<version>9.35</version>
<exclusions>
<exclusion>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
</exclusion>
</exclusions>
</dependency>
ਨਿਰਭਰਤਾ ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ ਅਤੇ ਕਾਬੂ ਕਰਨਾ
MAVen ਨਿਰਭਰਤਾ ਸਮੱਸਿਆ ਨਿਪਟਾਰਾ ਲਈ ਕਮਾਂਡ-ਲਾਈਨ ਪਹੁੰਚ
// Solution 2: Checking and forcing updates in Maven
# Run this command to check dependency tree
mvn dependency:tree
# Force update dependencies to fetch latest available versions
mvn clean install -U
# Verify if the artifact is available in Maven Central
mvn help:evaluate -Dexpression=project.dependencies
# Manually delete cached metadata in .m2 repository
rm -rf ~/.m2/repository/net/minidev/json-smart
# Retry build after clearing cache
mvn clean package
ਨਿਰਭਰਤਾ ਦੇ ਵਿਚਕਾਰ ਅਨੁਕੂਲਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾ ਰਿਹਾ ਹੈ
ਜਾਵਾ - ਬੈਕਐਂਡ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫਿਕਸ
// Solution 3: Aligning dependency versions in pom.xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.4.8</version>
</dependency>
</dependencies>
</dependencyManagement>
// This ensures all modules use the same version
ਨਮੂਨਾ ਜਾਵਾ ਕੋਡ ਦੇ ਨਾਲ ਫਿਕਸ ਟੈਸਟਿੰਗ
ਜਾਵਾ - ਇਕਾਈ ਦਾ ਟੈਸਟ ਸਹੀ ਨਿਰਭਰਤਾ ਰੈਜ਼ੋਲੂਸ਼ਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ
// Solution 4: Unit test to check json-smart availability
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import net.minidev.json.parser.JSONParser;
public class JsonSmartTest {
@Test
public void testJsonSmartAvailability() {
JSONParser parser = new JSONParser(JSONParser.MODE_PERMISSIVE);
assertNotNull(parser, "json-smart should be available in classpath");
}
}
ਮੈਕਵੇਨ ਵਿੱਚ ਨਿਰਭਰਤਾ ਰੈਜ਼ੋਲੂਸ਼ਨ ਮੁੱਦਿਆਂ ਨੂੰ ਸਮਝਣਾ
ਇਕ ਮਹੱਤਵਪੂਰਣ ਪਰ ਅਕਸਰ ਕੰਮ ਕਰਨ ਦਾ ਅਣਦੇਖੀ ਪਹਿਲੂ ਮੌਵਨ ਇਹ ਸਮਝ ਰਿਹਾ ਹੈ ਕਿ ਹੁੱਡ ਦੇ ਅਧੀਨ ਨਿਰਭਰਤਾ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ. ਜਦੋਂ ਇਕ ਨਿਰਭਰਤਾ ਵਰਗੀ ਹੈ ਜੇਐਸਓਨ-ਸਮਾਰਟ ਅਚਾਨਕ ਅਣਉਪਲਬਧ ਹੋ ਜਾਂਦਾ ਹੈ, ਇਸ ਦੇ ਮੁੱਦਿਆਂ ਦੇ ਕਾਰਨ ਹੋ ਸਕਦਾ ਹੈ ਜਿਵੇਂ ਰਿਪੋਜ਼ਟਰੀ ਤਬਦੀਲੀਆਂ, ਹਟਾਏ ਗਏ ਸੰਸਕਰਣਾਂ ਜਾਂ ਮੈਟਾਡੇਟਾ ਮੇਲ-ਪੱਤਰਾਂ ਵਰਗੇ ਮੁੱਦਿਆਂ ਕਾਰਨ. ਮੌਈਨ ਇੱਕ struct ਾਂਚਾਗਤ ਮੈਟਾਡੇਟਾ ਫਾਈਲ ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, maven-metadata.xml, ਜਿਸ ਵਿੱਚ ਹਰ ਆਰਟੀਫੈਕਟ ਬਾਰੇ ਵੇਰਵੇ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ. ਜੇ ਇਹ ਫਾਈਲ ਪੁਰਾਣੀ ਜਾਂ ਖਰਾਬ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਮਾਵੇਨ ਸਹੀ ਸੰਸਕਰਣ ਲਿਆਉਣ ਲਈ ਸੰਘਰਸ਼ ਕਰ ਸਕਦਾ ਹੈ.
ਨਿਰਭਰਤਾ ਰੈਜ਼ੋਲੇਸ਼ਨ ਦੀਆਂ ਅਸਫਲਤਾਵਾਂ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾਉਣ ਵਾਲਾ ਇਕ ਹੋਰ ਮੁੱਖ ਕਾਰਕ ਵਿਵਾਦਪੂਰਨ ਤਬਦੀਲੀ ਨਿਰਭਰਤਾ ਦੀ ਮੌਜੂਦਗੀ ਹੈ. ਗੁੰਝਲਦਾਰ ਪ੍ਰਾਜੈਕਟਾਂ ਵਿੱਚ, ਨਿਰਭਰਤਾ ਅਕਸਰ ਦੂਜੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੁਆਰਾ ਅਸਿੱਧੇ ਤੌਰ 'ਤੇ ਖਿੱਚੀ ਜਾਂਦੀ ਹੈ. ਉਦਾਹਰਣ ਦੇ ਲਈ, ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਜੇਐਸਓਨ-ਸਮਾਰਟ ਦੁਆਰਾ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ Outhth2-oidc-sdk, ਜੋ ਕਿ ਆਪਣੇ ਆਪ ਵਿਚ ਨਿਰਭਰਤਾ ਹੈ ਅਜ਼ੂਰ-ਪਛਾਣ. ਜੇ ਨਿਰਭਰਤਾ ਵਰਜ਼ਨ ਸੀਮਾ ਗਲਤ installation ੰਗ ਨਾਲ ਪਰਿਭਾਸ਼ਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜਾਂ ਜੇ ਕੋਈ ਕਲਾਕਾਰੀ ਮਾਵੇਨ ਸੈਂਟਰਲ ਜਾਂ ਜੇਸੇਂਟਰ ਤੋਂ ਹਟਾ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਬਿਲਡ ਬਰੇਕ ਹੋ ਜਾਵੇਗੀ. ਵਰਗੇ ਸੰਦਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ mvn dependency:tree ਟਰੇਸ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ ਕਿ ਕਿੰਨੇ ਨਿਰਭਰਤਾ ਪੇਸ਼ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ ਅਤੇ ਜਿੱਥੇ ਸੰਭਾਵਿਤ ਟਕਰਾਅ ਪੈਦਾ ਹੁੰਦੇ ਹਨ.
ਅਜਿਹੇ ਮੁੱਦਿਆਂ ਨੂੰ ਰੋਕਣ ਦਾ ਇਕ ਵਿਹਾਰਕ ਤਰੀਕਾ ਹੈ ਸਥਾਨਕ ਜਾਂ ਐਂਟਰਪ੍ਰਾਈਜ਼-ਲੈਵਲਿਫੈਕਟ ਰਿਪੋਜ਼ਟਰੀ ਪਸੰਦ ਜੇਫ੍ਰੌਗ ਆਰਟੀਫੈਕਟਰੀ ਜਾਂ ਸੋਨਟੀਪ ਨੇਕਸਸ. ਇਹ ਰਿਪੋਜ਼ਟਰੀਆਂ ਨਿਰਭਰਤਾ ਨੂੰ ਨਿਰਭਰਤਾ ਨੂੰ ਛੇਕ ਦੀ ਨਿਰਭਰਤਾ ਨੂੰ ਕੈਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀਆਂ ਹਨ ਭਾਵੇਂ ਕਿ ਇੱਕ ਕਲਾਕ੍ਰਿਤੀ ਜਨਤਕ ਰਿਪ੍ਰੋਜ਼ਟਰੀਆਂ ਤੋਂ ਹਟਾ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ, ਇਹ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਉਪਲਬਧ ਹੈ. ਬਹੁਤ ਸਾਰੀਆਂ ਕੰਪਨੀਆਂ ਆਪਣੇ ਨਿਰਭਰਤਾ ਪ੍ਰਬੰਧਨ ਤੇ ਵਧੇਰੇ ਨਿਯੰਤਰਣ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇਸ ਪਹੁੰਚ ਨੂੰ ਵਰਤਦੀਆਂ ਹਨ. ਇਹ ਬੇਲੋੜੀ ਰਿਮੋਟ ਫੈਟ ਓਪਰੇਸ਼ਨਾਂ ਤੋਂ ਪਰਹੇਜ਼ ਕਰਕੇ ਬਿਲਡ ਟਾਈਮਜ਼ ਨੂੰ ਵੀ ਤੇਜ਼ ਕਰਦਾ ਹੈ. 🚀
ਮੌਈਨੀ ਨਿਰਭਰਤਾ ਦੇ ਮੁੱਦਿਆਂ ਬਾਰੇ ਆਮ ਪ੍ਰਸ਼ਨ
- ਨਿਰਭਰਤਾ ਲਈ ਮੰਗਲ "ਕੋਈ ਵਰਜਨ" ਕਿਉਂ ਕਹੇਗਾ?
- ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਮੈਕਨ ਨਿਰਧਾਰਤ ਸੀਮਾ ਦੇ ਅੰਦਰ ਅਨੁਕੂਲ ਵਰਜਨ ਨਹੀਂ ਲੱਭ ਸਕਦਾ. ਚੱਲ ਰਿਹਾ ਹੈ mvn dependency:tree ਇਹ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰ ਸਕਦੀ ਹੈ ਕਿ ਨਿਰਭਰਤਾ ਕਿਸ ਮੁੱਦੇ ਦਾ ਕਾਰਨ ਬਣ ਰਹੀ ਹੈ.
- ਮੈਂ ਮਵੇਨ ਦੀ ਨਿਰਭਰਤਾ ਨੂੰ ਕਿਵੇਂ ਅਪਡੇਟ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰੋ mvn clean install -U. -U ਫਲੈਗ ਮੌਵ ਨੂੰ ਰਿਮੋਟ ਰਿਪੋਜ਼ਟਰੀਆਂ ਤੋਂ ਤਾਜ਼ਾ ਉਪਲਬਧ ਨਿਰਭਰਤਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰੋ.
- ਦਾ ਮਕਸਦ ਕੀ ਹੈ <exclusion> ਚਾਵੇ ਵਿਚ ਟੈਗ?
- <exclusion> ਟੈਗ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਣ ਤੋਂ ਬਚਾਅ ਤੋਂ ਬਚਾਅ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ. ਇਹ ਉਪਯੋਗੀ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਦੋ ਨਿਰਭਰਤਾ ਇਕੋ ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਵਿਵਾਦਪੂਰਨ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਖਿੱਚਦੀਆਂ ਹਨ.
- ਮੈਂ ਸਥਾਨਕ ਮੈਵੇਨ ਰਿਪੋਜ਼ਟਰੀ ਨੂੰ ਕਿਵੇਂ ਮਿਟਾਉਂਦਾ ਹਾਂ ਅਤੇ ਤਾਜ਼ਗੀ ਦਿੰਦਾ ਹਾਂ?
- ਚਲਾਓ rm -rf ~/.m2/repository ਸਾਰੀ ਕੈਚ ਨਿਰਭਰਤਾ ਨੂੰ ਹਟਾਉਣ ਲਈ, ਫਿਰ ਤਾਜ਼ੇ ਡਾ download ਨਲੋਡ ਕਰਨ ਲਈ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਉ.
- ਕੀ ਮੈਂ ਵਿਵਾਦਾਂ ਤੋਂ ਬਚਣ ਲਈ ਨਿਰਭਰਤਾ ਲਈ ਇੱਕ ਨਿਸ਼ਚਤ ਸੰਸਕਰਣ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਹਾਂ, ਤੁਹਾਡੇ ਵਿੱਚ pom.xml, ਅੰਦਰ ਇੱਕ ਨਿਸ਼ਚਤ ਸੰਸਕਰਣ ਦੀ ਪਰਿਭਾਸ਼ਾ ਦਿਓ <dependencyManagement> ਮੋਡੀ ules ਲ ਦੇ ਪਾਰ ਇਕਸਾਰਤਾ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਭਾਗ.
ਸਮਾਰਟ ਡੀਬੱਗਿੰਗ ਨਾਲ ਨਿਰਭਰਤਾ ਦੇ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ 🛠️
ਮਵੇਨ ਵਿੱਚ ਨਿਰਭਰਤਾ ਦੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣਾ ਇੱਕ struct ਾਂਚਾਗਤ ਪਹੁੰਚ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ. ਇਹ ਸਮਝਣ ਅਤੇ ਅਸਲ ਵਿੱਚ ਵਿਵਾਦਾਂ ਦਾ ਪ੍ਰਬੰਧ ਕਰਨ ਅਤੇ ਸਰਗਰਮੀ ਨਾਲ ਤਬਾਹੀਆਂ ਦਾ ਪ੍ਰਬੰਧ ਕਰ ਰਹੇ ਹਨ, ਡਿਵੈਲਪਰ ਅਸਫਲਤਾਵਾਂ ਨੂੰ ਰੋਕ ਸਕਦੇ ਹਨ. ਸਾਧਨ ਵਰਗੇ ਐਮਵੀਐਨ ਨਿਰਭਰਤਾ: ਰੁੱਖ ਅਤੇ ਨਿਰਭਰਤਾ ਪੀਓਐਮ ਫਾਈਲਾਂ ਵਿੱਚ ਗੁੰਝਲਦਾਰ ਪ੍ਰਾਜੈਕਟਾਂ ਵਿੱਚ ਸਥਿਰਤਾ ਬਣਾਈ ਰੱਖਣ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਦੇ ਹਨ.
ਕਿਰਿਆਸ਼ੀਲਤਾ ਨਾਲ ਨਿਰਭਰਤਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ ਅਤੇ ਨਾਜ਼ੁਕ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਕੇਚਿੰਗ ਲਾਇਬ੍ਰੇਰੀਆਂ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਪ੍ਰੋਜੈਕਟ ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਵਧਾਉਣ ਲਈ ਅੱਗੇ ਵਧਾਉਣ ਲਈ ਅੱਗੇ ਵਧਾਉਣ ਲਈ ਪ੍ਰੋਜੈਕਟ ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਵਧਾਉਣ ਲਈ ਪ੍ਰੋਜੈਕਟ ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਵਧਾ ਸਕਦੀ ਹੈ. ਕੀ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਐਪਲੀਕੇਸ਼ਨਾਂ ਜਾਂ ਛੋਟੇ ਪ੍ਰੋਜੈਕਟਾਂ ਤੇ ਕੰਮ ਕਰਨਾ, ਕੁਸ਼ਲ ਨਿਰਭਰਤਾ ਪ੍ਰਬੰਧਨ ਨਿਰਵਿਘਨ ਵਿਕਾਸ ਚੱਕਰ ਅਤੇ ਤੇਜ਼ ਤੈਨਾਤੀ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ. 🔧
ਉਪਯੋਗੀ ਹਵਾਲੇ ਅਤੇ ਦਸਤਾਵੇਜ਼
- ਨਿਰਭਰਤਾ ਰੈਜ਼ੋਲੇਸ਼ਨ 'ਤੇ ਅਧਿਕਾਰਤ ਮੌਵਿਨ ਡੌਕੂਮੈਂਟੇਸ਼ਨ: ਅਪਾਚੇ ਮੈਕਵੇਨ
- ਪਰਿਵਰਤਨਸ਼ੀਲ ਨਿਰਭਰਤਾ ਅਤੇ ਅਲਹਿਦਗੀ ਨੂੰ ਸਮਝਣਾ: ਮਾਵੇਨ ਨਿਰਭਰਤਾ ਪ੍ਰਬੰਧਨ
- ਜਾਵਾ ਟ੍ਰੱਬਲਸ਼ੂਟਿੰਗ ਗਾਈਡ ਲਈ ਅਜ਼ੂਰ ਐਸਡੀਕੇ: ਜਾਵਾ ਲਈ ਮਾਈਕਰੋਸੋਫਟ ਅਜ਼ੂਰ
- ਆਮ ਮੈਵੈਨ ਦੇ ਮੁੱਦੇ ਅਤੇ ਹੱਲ: ਮਾਵੇਨ ਸਟੈਕ ਓਵਰਫਲੋ