Вы можете сделать что-то вроде этого
<div class="projects">
<div class="w-33" id="first-project">
<a class="learn-more" onclick="changeclass(this)">Learn More</a>
</div>
<div class="w-33" id="second-project">
<a class="learn-more" onclick="changeclass(this)">Learn More</a>
</div>
<div class="w-33" id="third-project">
<a class="learn-more" onclick="changeclass(this)">Learn More</a>
</div>
</div>
<script>
function changeclass(elem) {
let allDivs = document.querySelectorAll('.projects > div');
for(let oneDiv of allDivs) {
oneDiv.className = "w-20";
}
elem.parentNode.className = "w-60";
}
</script>
Время изменения файла скомпилированных файлов является по всей вероятности причиной. Кроме того, Ваши файлы класса могли бы на самом деле отличаться. Если Вы реорганизовали свою структуру пакета, они совершенно определенно будут.
Это - вероятно, не случай - но случайно Вы используете различные версии компилятора (даже различия во вспомогательной версии) при компиляции двух исходных оснований?
При использовании BeyondCompare (или подобный), он будет разность файлы банки и определять различные файлы в архивах (вниз к различиям в строке/символе для текстового файла, или просто выделите двоичные файлы, которые изменились).
(Я не думаю, что время изменения файла хранится в их текстовом представлении в .jar формате, и я не полагаю, что они будут способствовать .jar размерам файла),